Article ID: 769, created on Jun 10, 2011, last review on May 10, 2014

  • Applies to:
  • Plesk for Linux/Unix

原因

这个错误的意思是MySQL的并发连接数已经达到了限制,此时无法在服务器上建立新的连接。

解决方案

有两种办法来解决这个问题。第一种是增加连接限制数,第二种是找出导致“too many connection”错误的原因并尝试降低MySQL服务器的资源使用率。
MySQL服务状态可以通过‘mysqladmin’工具来检测。例如为了找出当前服务器连接数,使用:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` extended-status | grep Max_used_connections
| Max_used_connections | 11 |

当前最大连接数限定的设置可以通过:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow ` variables | grep 'max.*connections'
| max_connections | 100 |
| max_user_connections | 0

从以上的例子看出,服务器的最大连接数(max_connections)设置是100.每用户的最大连接数(max_user_connection)是0,意思是没有限制。这些都是MySQL默认值,可以通过/etc/my.cnf来重定义,例如:

[mysqld]
set-variable=max_connections=150
set-variable=max_user_connections=20


修改完my.cnf后重启MySQL服务。
注意,如果您将连接限制数设置得非常高,这可能影响服务器性能。比较好的方法是找出MySQL服务器资源使用率高的原因。您可以检查是那个用户/请求放慢了mysql运行速度以及占据了所有当前的连接,例如使用下面命令:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` processlist

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article