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 &
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
5 | mysql 4.0 에서 4.1 다운그레이드 | 호스트웨이 | 2012.11.01 | 6616 |
4 | [mysql] sqli, pdo 설정 확인 | 호스트웨이 | 2015.09.22 | 6597 |
3 | [mysql] shell 자동화 | 호스트웨이 | 2015.09.20 | 6329 |
2 | MySQL Processlist 콘솔 상에서 확인 | 호스트웨이 | 2015.09.07 | 6060 |
1 | 지정된 시간 이상 질의를 계속 하는 질의문 잡아내기 | 호스트웨이 | 2015.09.15 | 6042 |