2015.09.10 15:20
정상적으로 잘 동작하던 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 &