Too many connections
从字面理解,mysql连接数过多。当连接数量过多,且来不及释放时便会出现此错误。
查看mysql当前连接信息,特别要注意sleep休眠状态的连接。
show full processlist;
查看mysql设置的最大连接数
show global variables like 'max_connections';
如果最大连接数量没问题,而sleep休眠状态的连接过多,则应该从两方面注意:
- 1。 wait_timeout 空闲等待超时时间
- 2。 interactive_timeout 交互超时时间(通过mysql客户端连接数据库是交互式连接)
要想从根本上解决sleep过多的问题,需从以下面三点排查:
* 1。程序连接mysql,不使用持久链接。即使用mysqli_connect而不是pconnect。
* 2。程序执行结束,主动显式调用mysqli_close来释放连接资源。
* 3。解决程序中的SQL慢查询语句。
最后快速解决过程
set GLOBAL max_connections = 500;
set GLOBAL wait_timeout = 300;
set GLOBAL interactive_timeout = 600;