MySQL - read/write Time Out 설정

2019. 6. 23. 11:25plming/DB

시스템 운영시점에서는 설정된 기본값이나

조정된 설정값을 사용하면 되지만

 

DB에 실행시간이 길게 소요되는 SQL들을 날리며 작업해야하는

DB Setting, Migration등의 경우

DB 자체에서 관리하는 timeout 값들을 변경한 후 작업을 수행하고

작업이 완료되면, 원래 설정값들로 원복하는 것이

정신건강에 좋을 듯 하다.

 

그렇지 않으면

아래 Error를 작업이 끝날 때까지 만나게 될테니 말이다.

(작업이 수행되다 중간에 끊어져버린 것이라...

 100을 처리해야 하는 데, 60, 70만 처리되고 끝나버리면

 작업을 보정하기 조차 어렵다;;;  (정신건강에 안좋음)

 60, 70이라도 작업을 초기화해야 할 듯...

 Error Code: 2013. Lost connection to MySQL server during query

 

MySQL에는 timeout 관련 설정이 다수 있지만

 SHOW VARIABLES LIKE '%timeout%';

 

 Variable_name Value
 connect_timeout 10
 delayed_insert_timeout 300
 have_statement_timeout YES
 innodb_flush_log_at_timeout 1
 innodb_lock_wait_timeout 50
 innodb_rollback_on_timeout OFF
 interactive_timeout 28800
 lock_wait_timeout 31536000
 net_read_timeout 30
 net_write_timeout 60
 rpl_stop_slave_timeout 31536000
 slave_net_timeout 60
 wait_timeout 28800 

 

오래 걸리는 SELECT를 처리해야 할 때는

 SET GLOBAL net_read_timeout = 30;

 

오래 걸리는 INSERT, UPDATE를 처리해야 할 때는

 SET GLOBAL net_write_timeout = 60;

 

원하는 초단위로 변경하고

재접속하면 된다.

 

작업이 완료되고 난 후에는...

설정값을 원복하는 것을 잊으면 안되겠다...

놀이터가 아니라면...^^

 

 

기타 설정값 관련 참고글 : https://lilymate.tistory.com/640

 

MySQL - Temp Table is full, 크기 조절

CREATE TEMPORARY TABLE xxx ... 임시로 생성한 테이블에서 아래와 같은 Exception 이 발생한다면? java.sql.SQLException: The table 'xxx' is full MySQL 환경에 설정된 heap size와 temp table size를 조절해야..

lilymate.tistory.com