Linux DB

정상적으로 잘 동작하던 MYSQL 데이터베이스가 갑자기

"Warning... too many connections..."

라고 하는 메시지와 함께 종료되는 경우가 발생합니다.

이 문제의 root cause는 MYSQL의 환경변수에 설정되어있는 "max_connections" 값을 초과하는 쿼리가 발생하는 것입니다.


"mysqladmin -u root -p variables" 를 실행해보면 MYSQL의 전체 환경변수의 값을 확인 할 수 있는데 그 가운데 다음 3가지의 값을 조절함으로서 해당 에러를 응급조치 할 수 있습니다.


max_connections  : MYSQL에 접속할 수 있는 최대 연결 수

table_open_cache : MYSQL의 캐쉬 크기

wait_timeout     : MYSQL의 쿼리가 지속되는 시간


이 방법으로 "too many connections" 문제가 해결되었다면 부팅시마다 MYSQL을 시작하면서 매번 자동 적용 되도록 /etc/rc.d/rc.local 파일에 아래와 같이 설정해두는 것도 좋은 방법이 됩니다.


예시)

/usr/local/mysql/bin/mysqlid_safe -O max_connections=1000 -O table_open_cache=512 -O wait_timeout=57600 &