一 产生too many connections 的直接原因
因为数据库提供的连接被全部占满了
连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关系。
wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大
SHOW VARIABLES LIKE 'wait_timeout' 查看连接的空闲等待时间
set global wait_timeout=2800; 设置连接的空闲等待时间 (毫秒)
查看命令:show processlist; 查看现有线程数。show processlist命令显示的是Thread_connected,SHOW VARIABLES LIKE "MAX_CONNECTIONS" ; 查看最大线程数 ,当Thread_connected与max_connections相等时,在 企图进行数据库连接,就会出现too many connections的错误
二 解决办法
# vi /etc/my.cnf 添加以下行
[mysqld]
set-variable=max_connections=1000
set-variable=max_user_connections=500
set-variable=wait_timeout=200
service mysql restart