썩구노트

mysql wait_timeout 설정법 본문

DB

mysql wait_timeout 설정법

양석규 2017. 1. 3. 10:22

* Mysql에 3306 포트로 연결후 사용하다보면 트래픽이 적은경우(서비스 상용화전 테스트 중등.. )에 연결이 끊기는

경우가 있다.(CR_SERVER_GONE_ERROR 등등)

이는 Mysql이 연결된상태에서 일정시간 트래픽이 없으면 연결을 닫아버리기 때문이다(default 8시간)

MysqlPing 같은 함수로 주기적으로 연결상태를 확인하고 재연결시켜주는 함수가 지원되지만

믿을게 못된다. 다음과 같이 wait_timeout를 설정해보자

1. vi /etc/my.cnf 에서 [mysqld] 항목에 wait_timeout = 20000(원하는 시간()) 설정후 재실행

2. 제대로 적용됬는지 확인은 mysql 들어가서 show GLOBAL variable; 에서 wait_timeout 추가

>vi /etc/my.cnf

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
wait_timeout = 31536000 <== Max 1년...

>/etc/rc.d/init.d/mysqld start

>mysql -uroot -pxxxx mysql

mysql> show GLOBAL variable

| version_compile_os | redhat-linux-gnu | 
wait_timeout | 31536000 
+---------------------------------+--------------------------------------------------+

자.. 이제부터는잘된다..