0
우분투 12.04 게스트 VM에 MySQL 5.5.35 인스턴스가 있습니다. 나는 자동 연결을 비활성화 할 수 없습니까?
내가SELECT ... FOR UPDATE;
에 관련된 몇 가지 시나리오를 원했고 .../우회
autocommit
기능을 해제 할 수없는 것, 그래서 나는 두 개의 데이터베이스 세션 오픈 - VM을 자체에 MySQL의 워크 벤치에서 하나를, 그리고
mysql
에서 다른 하나 CLI, 내 Windows 호스트에서. 두 세션 중 하나에서 내가하는 일은 즉시 다른 세션에서 볼 수 있습니다. 자동 커밋 또는 전혀 자동 커밋 설정, 트랜잭션이나 트랜잭션 (transaction), 명시 적으로 커밋 또는 명시 적으로 커밋되지는 ...
나는 다음과 같은 시도 :
1) 구성을 통해 비활성화를 효과적으로 설정
[mysqld]
autocommit = 0
글로벌 autocommit
변수는 SHOW GLOBAL VARIABLES
에 따라 OFF로 변경됩니다. 작동하지 않습니다. 바로 그 첫 번째
set autocommit=0;
select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 1 |
+--------------+
이 명령을 실행
2) 작동하지 않습니다.
start transaction; // tried begin; as well
...
commit;
가 작동하지 않습니다 명시 적 트랜잭션을 여는
3).
INSERT/UPDATE
문마다 데이터베이스 설정 및 변수가 다르게 표시되는 경우에도 데이터베이스가 자동 커밋 역할을합니다 ... commit
문은 항상 0 rows affected
을 반환합니다.
여기에 뭔가 빠졌습니까? 이것은 가능한 모든 방법으로 사용자/권한과 관련이 있습니까?
트랜잭션 가능 DB 엔진을 사용하고 있습니까? 예 : myisam을 사용하고 있다면 트랜잭션이없고 자동 커밋은 아무런 영향을 미치지 않습니다. –
Marc, 당신 말이 맞아 보이는군요 ... 엔진 유형을 확인하는 것만 큼 생각하지 않고도 MyISAM 테이블에서 모든 테스트를 수행했습니다. 제발, 당신의 의견에 답을 만들어서 받아 들일 수 있도록하십시오. – Less