mysql: too many connections的解决方法

发布时间:2020-12-13编辑:脚本学堂
mysql: Too many connections $mysql -uroot
ERROR 1040 (00000): Too many connections以上的代码,大家可能都曾遇到过,Aurimas Mikalauskas在MySQL Performance Blog已

mysql: Too many connections 

$mysql -uroot
ERROR 1040 (00000): Too many connections

以上的代码,大家可能都曾遇到过,Aurimas Mikalauskas在MySQL Performance Blog已经提到了一个解决办法(生产环境慎用之):
 

复制代码 代码如下:
$gdb -p $(cat data/mysql_sandbox5087.pid)
-ex "set max_connections=5000" -batch

上面提到的只是一个救火的办法,MySQL提供了另一个办法,可以一定程度上避免上述问题。

MySQL提供了参数max_connections控制最大连接数,这包括所有用户的连接数。MySQL还提供了另一个参数max_user_connections,用来控制某个用户的最大连接数。例如,将该参数设置为50,那么对于任何一个用户(包括super权限的用户),最多只能创建50个连接。

于是我们可以制定下面的策略:如果的MySQL有3个用户(不包括root),将max_user_connections设置为300,max_connections设置为1000。配置文件:
 

复制代码 代码如下:
max_connections = 1000
max_user_connections=300

那么因为只有3个用户,单个用户的最大连接数是300,那么正常最多就只有900个连接,也就总会有100个额外的连接给root来使用。