连接mysql时报too many connections错误,是因为打开连接太多导致。
通过show processlist你会发现有很多sleep连接,这是因为使用了长连接(mysql_pconnect)或者短连接(mysql_connect)未正常关闭导致的。
可以修改mysqld的最大连接数,同时设置一个短的超时时间,让短连接尽快的自动关闭即可解决次问题:
修改/etc/my.cnf,添加下面内容,并重启mysqld服务即可:
1 2 3 | max_connections = 500 #由默认的150改成500个连接 wait_timeout=600 #由默认的2880改为600秒 interactive_timeout = 600 #由默认的2880改为600秒 |