天天看点

Mysql常见错误系列—Too many connections

错误现象:

Mysql常见错误系列—Too many connections
[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

继续阅读