星期二, 10月 29, 2013

我得到了一个错误:“Could not connect to SQL database. Too many connections”。

APPLIES TO:









  • Parallels Plesk Panel 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]

max_connections=150



修改完my.cnf后重启MySQL服务。 注意,如果您将连接限制数设置得非常高,这可能影响服务器性能。



比较好的方法是找出MySQL服务器资源使用率高的原因。您可以检查是那个用户/请求放慢了mysql运行速度以及占据了所有当前的连接,例如使用下面命令:

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


 

沒有留言: