mariadb에서 자동 커밋을 해제하는 방법은 무엇입니까?
marasql과 marasql에 mysql workbench IDE를 사용하고 있지만 자동 커밋 모드를 사용할 수 없습니다.자동 커밋을 끄려면 어떻게 해야 합니까?
SQL 편집기에는 자동 커밋 모드를 전환할 수 있는 도구 모음 버튼이 있습니다.
자동 커밋을 끄면 트랜잭션을 시작하고 커밋하는 데 사용할 수 있는 다른 두 개의 파란색 버튼이 활성화됩니다.
XAMPP-VM을 MariaDB와 InnoDB와 함께 사용합니다.my.conf로 자동 커밋을 사용하지 않도록 설정할 수는 없었지만 mysql.server 파일(XAMPP-VM의 경우 /opt/lampp/bin 폴더에 있음)을 편집하고 이 매개 변수를 시작에 추가했습니다.
--autocommit=0
그래서 마지막에는 이렇게 보입니다.
...
case "$mode" in
'start')
# Start daemon
...
$bindir/mysqld_safe --autocommit=0 --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
...
그리고 그것은 효과가 있었습니다.Stop-Start 후에 이 옵션을 사용하여 확인할 수 있습니다(스위치의 다른 경로로 진행되므로 다시 시작해도 변경 사항이 적용되지 않음).
select *
from information_schema.global_variables
where variable_name = 'AUTOCOMMIT';
다른 측면은 업그레이드를 하면 이를 반복해야 한다는 것입니다.
호프, 당신은 이 해결책을 채택할 수 있습니다. / 방법을 알려줍니다!
세션에 대해 자동 커밋을 false로 설정할 수 있습니다.
SET autocommit = 0;
https://mariadb.com/kb/en/mariadb/server-system-variables/ #syscommit
제가 찾은 유일한 방법은--autocommit=0데몬의 시작 명령으로 이동합니다.
환경:
$ mariadb --version
mariadb Ver 15.1 Distrib 10.5.6-MariaDB, for Linux (x86_64) using readline 5.1
$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Oracle Linux Server 7.9"
한 줄 명령:
참고: 여전히 추가해야 합니다.--autocommit=0수동으로
$ vim /usr/lib/systemd/system/mariadb.service && systemctl daemon-reload && systemctl restart mariadb && mariadb -u root -e "show variables like '%autocommit%'"
단계별 명령:
- 텍스트 편집기를 사용하여 작업 파일 열기
$ vim /usr/lib/systemd/system/mariadb.service
- 더하다
--autocommit=0로.ExecStart(나에게 그것은 92번에 있었습니다.
ExecStart=/usr/sbin/mariadbd --autocommit=0 $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
- 데몬 다시 로드
$ systemctl daemon-reload
- 서비스 다시 시작
$ systemctl restart mariadb
- 상태를 확인합니다.
autocommit변수
$ mariadb -u root -e "show variables like '%autocommit%'"
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| autocommit | OFF |
...
+------------------------+-------+
전원을 끄는 것은 실수라고 생각합니다.autocommit.
자동 커밋을 처리하는 세 가지 방법이 있습니다.
autocommit=1모든 문이 즉시 커밋됩니다.이것은 일반적으로 일상적인 사용에 적합합니다.BEGIN...COMMIT여기서 SQL 문 집합을 명시적으로 대괄호로 묶습니다.그것을 가짐으로써.BEGIN당신은 상기됩니다.COMMIT필요할 것입니다.autocommit=0...COMMIT저는 이것이 오류를 일으키기 쉽다고 봅니다.기본적으로 자동 커밋을 0으로 설정한 다음 실행하지 않습니다.COMMIT그럼 왜 당신은 당신의INSERTs잠수타다.
언급URL : https://stackoverflow.com/questions/37172393/how-to-turn-off-autocommit-in-mariadb
'codememo' 카테고리의 다른 글
| 크롬/j쿼리 탐지되지 않은 범위 오류: 최대 호출 스택 크기를 초과했습니다. (0) | 2023.08.21 |
|---|---|
| 앵커 태그가 아무것도 참조하지 않도록 만드는 방법은 무엇입니까? (0) | 2023.08.21 |
| PowerShell 선택적 인수가 호출자에 의해 설정되었는지 확인하는 방법 (0) | 2023.08.21 |
| 문자열을 버퍼 노드로 변환 (0) | 2023.08.21 |
| CodeIgniter에서 pconnect 옵션의 장점/단점 (0) | 2023.08.21 |
