살아 숨 쉬는 웹 - 블루비

MySQL max connections 설정Total 511 : Today 5 : Yesterday 3

Max connections 에러가 발생하면 PHP페이지에 Too many connection가 나옵니다.
이는 mysql에서 동시열결가능한 클라이언트수를 넘었기 때문이다.

MySQL 서버는 동시에 연결될 수 있는 클라이언트의 수가 기본으로 100 명이다.
동시접속자수를 변경하려면 my.cnf을 수정하고 MySQL 서버를 재시작하면 된다.

이런에러의 원인으로는 다음과 같습니다.

1) mysql_connect()함수로 DB connect를 했다면 해당스크립트가 종료됨과 동시에 mysql_close()함수를 호출하지않아도 자동으로 연결이 종료된다.

하지만, mysql_pconnect()함수는 해당스크립트가 종료된후 mysql_close()함수가 호출되었더라도 연결이 끊어지지않은채로 계속 연결을 유지하고 있어서 금방 커넥션을 다채울수도 있다.

2) MySQL 의 메뉴얼을 보면 mysql_connect()함수를 사용하면 해당스크립트의 종료와 함께 연결이 종료된다고 되어있지만 ./mysqladmin -u -p processlist라는 명령어를 통해서 살펴보면 그대로 살아 있음을 알수 있다.

맨위에서 살펴보았던 mysqladmin -u -p variables의 결과로서 볼수 있는 여러가지 시작옵션들중 wait_timeout 의 값만큼 서버에 그대로 연결을 유지한채로 남아 있는 것이다.

따라서, 이것이 too many connections의 직접적인 이유인 것이다.


[콘솔에서 커넥션수 알아내기]
$ mysqladmin -u root -p variables | grep max_connection

| max_connections | 100

[mysql에서 커넥션수 알아내기]

show variables like '%max%';


이제는, 클라이언트의 동시 접속자를 늘리는 명령이다.
먼저 mysql을 데몬을 kill 합니다.다시 아래와같이 서버를 재가동한다.


#mysqld_safe --language=korean --datadir=/data --user=mysql --default-character-set=euc_kr -O max_connections=256 -O table_cache=128 -O wait_timeout=60 &

#mysqld_safe -O max_connections=256 -O table_cache=128 -O wait_timeout=60 &

참고로, 리눅스나 솔라리스 계열에서는 클라이언트의 동시 접속자수가 500 ~ 1,000 까지 가능하다고 합니다.하지만 1000 설정 하려고 해도 4way cpu에 상당히 많은 램이 필요하다고 할고 있다.
256이 적당하다.


여기서 max_connections 는 mysql 에 접속 할 수 있는 최대 사용자를 가르키며...
wait_timeout 은 접속 후 연결을 지속시키는 시간을 말한다


이렇게 하신 후 다시 확인한다.


[콘솔에서]

$ mysqladmin -u root -p variables | grep max_connection
$ mysqladmin -u root -p variables | grep wait_timeout

[mysql에서]

mysql> show variables like '%max_connection%';
mysql> show variables like 'wait_timeout';

[커넥션 확인]

mysql> show full processlist

[출처] mysql-too many connection|작성자 요루짱


MySQL 설정 파일(my.cnf or my.ini) 에 직접 추가 한 다음 재실행을 하셔도 적용이 됩니다.

[mysqld]
max_connections = 256
table_cache = 128
wait_timeout = 60







2008/09/25 14:00 2008/09/25 14:00
데이터베이스™/MySQL 2008/09/25 14:00 by 블루비

TRACKBACK :: http://blueb.net/blog/trackback/1303

Leave a Comment
[로그인][오픈아이디란?]
1  ... 52 53 54 55 56 57 58 59 60  ... 799 
전체 (799)
웹표준, 웹접근성™ (5)
웹프로그래밍™ (367)
웹기획™ (0)
웹디자인™ (5)
서버™ (34)
데이터베이스™ (44)
개발자료 (9)
트랜드 (60)
Study English (2)
블루비 (73)
오피스 다이어리 (19)
Textcube (2)
이슈 (20)
컴퓨터 악세사리 (18)
엔터테인먼트 (24)
좋은글 (82)
재테크 (1)
이벤트 (4)