一尘不染

php,mysql-与数据库的连接过多错误

mysql

祝大家有美好的一天。我有一个奇怪的错误。我创建了一个像这样的聊天:

  • 问题/答案插入数据库
  • 每2秒将ajax请求发送到php脚本,以获取新的问题/答案

直到今天,当我收到此错误时,它运行良好:

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1040] Too many connections' in /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php:129 
Stack trace: #0 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php(129): PDO->__construct('mysql:host=loca...', '', '', Array) 
s#1 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect() 
s#2 /var/www/html/dbdev/include/Zend/Db/Adapter/Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect() 
s#3 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('select profile_...', Array) 
s#4 /var/www/html/dbdev/include/Zend/Db/Adapter/Abstract.php(782): Zend_Db_Adapter_Pdo_Abstract->query('select profile_...', Array) 
s#5 /var/www/html/dbdev/include/Profile.php(43): Zend_Db_Adapter_Abstract->fetchPairs('select profile_...') 
s#6 /var/www/html/dbdev/public_html/index.php(29): Profile->load() 
s#7 {main} Next exception 'Zend_Db_Adapter_Exception' with in /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php on line 144

问题是我们不是那么多…(8),我不认为数据库不能同时支持超过8到16个连接(根据规范,聊天必须支持50-100个用户,因此8个是…小)。

所以…有人可以告诉我为什么会发生这种情况吗(昨天我们15岁,工作得很好),以及如何解决呢?感谢您的帮助。如果您需要任何代码示例,请询问。


阅读 370

收藏
2020-05-17

共1个答案

一尘不染

出现“连接过多”错误的原因有很多。

在MySQL.com上查看以下常见问题页面:http : //dev.mysql.com/doc/refman/5.5/en/too-many-
connections.html

检查您的my.cnf文件中的“ max_connections”。如果不存在,请尝试:

[mysqld]
set-variable=max_connections=250

但是默认值为151,所以您应该可以。

如果您在共享主机上,则可能是其他用户占用了太多连接。

需要注意的其他问题是使用持久连接和磁盘空间不足。

2020-05-17