Published 2023. 7. 6. 11:05
728x90
반응형
Mysql 에서 Insert 하는 과정에서 다음과 같이 에러가 발생했다.
OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
메시지를 보면 알 수 있듯이 트렌젝션의 수행시간이 초과되면 Lock 이 걸리는 것을 알 수 있다.
만약 트랜젝션의 수행시간이 길다면 나누어서 실행하는 게 좋을 것 같다.
해결 방법은 다음과 같다.
mysql root 계정으로 접속한다.
mysql -uroot -p
다음과 같이 timeout 값을 확인해볼 수 있다.
select @@innodb_lock_wait_timeout;
확인해보면 아래와 같이 innodb_lock_wait_timeout 의 값이 50초로 되어있는 것을 확인할 수 있다.
이 시간을 늘려주면 된다.
mysql> select @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 50 |
+----------------------------+
1 row in set (0.00 sec)
다음과 같이 변경할 수 있다.
set innodb_lock_wait_timeout= 28800;
변경 완료!
mysql> set innodb_lock_wait_timeout= 28800;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 28800 |
+----------------------------+
1 row in set (0.00 sec)
728x90
반응형
'데이터 엔지니어링 > Database' 카테고리의 다른 글
Postgresql 컬럼 기본값(default) 설정 (1) | 2023.10.05 |
---|---|
Postgresql 과 MySQL 비교 (0) | 2023.08.10 |
Mysql 8 버전 Sequal Pro 접속 에러 (0) | 2023.04.14 |
Mysql - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) (0) | 2023.03.08 |
Mysql CASE 문법 사용법 (0) | 2022.12.05 |