$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来使用。 |