错误现象:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0QzNzEzMxITMwMDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
[Err] 1040 - Too many connections
错误原因:
出现这种问题,是因为mysql的连接数太多导致,很多可能都在休眠中,没有断开。
mysql连接数默认为151个,可以通过命令
show variables like '%max_connections%';
来查看当前数据库的最大连接数设置,可以通过命令
show full processlist;
来查看当前数据库有多少个线程在运行,有多少个连接数。
mysqld实际上允许 max_connections + 1个客户端连接。额外连接保留供具有此SUPER权限的帐户使用 。通过向管理员而不是普通用户(不应该使用它)授予权限,即使已连接最大数量的非特权客户端,也具有该PROCESS权限的管理员 可以连接到服务器并用于SHOW PROCESSLIST诊断问题。
如何解决问题?
windows环境下
1.重启mysql,就可以进行连接,但是如果连接数超了又会这样。
2.修改配置文件,增加连接数:
修改mysql目录下 my.ini文件,打开文件增加配置,
max_connections=500
然后重启mysql服务即可。
MySQL支持的最大连接数(即max_connections可以设置的最大值 )取决于几个因素:
- 给定平台上的线程库的质量。
- 可用的RAM量
- RAM的数量用于每个连接
- 每个连接的工作量
- 期望的响应时间
- 可用的文件描述符数
Linux或Solaris应该能够支持至少500到1000个并发连接以及多达10000个连接,增加max_connections值会增加mysqld所需的文件描述符数 ,如果所需的描述符数量不可用,则服务器会减小其值max_connections