我不知道为什么,但我昨天工作正常的Magento装置现在还不行。
显示如下:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: 1017219017231
我在/ var / report中检查此日志记录号。 1017219017231
a:5:{i:0;s:43:"SQLSTATE[08004] [1040] Too many connections";i:1;s:1633:"#0 /data/htdocs/xyz.com/magento/lib/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /data/htdocs/xyz.com/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(251): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 /data/htdocs/xyz.com/magento/lib/Zend/Db/Adapter/Abstract.php(459): Varien_Db_Adapter_Pdo_Mysql->_connect()
#3 /data/htdocs/xyz.com/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES utf8', Array)
#4 /data/htdocs/xyz.com/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(333): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES utf8', Array)
#5 /data/htdocs/xyz.com/magento/app/code/core/Mage/Core/Model/Resource/Type/Db/Pdo/Mysql.php(45): Varien_Db_Adapter_Pdo_Mysql->query('SET NAMES utf8')
#6 /data/htdocs/xyz.com/magento/app/code/core/Mage/Core/Model/Resource.php(93): Mage_Core_Model_Resource_Type_Db_Pdo_Mysql->getConnection(Object(Mage_Core_Model_Config_Element))
#7 /data/htdocs/xyz.com/magento/app/code/core/Mage/Core/Model/Resource/Setup.php(83): Mage_Core_Model_Resource->getConnection('core_setup')
#8 /data/htdocs/xyz.com/magento/app/code/core/Mage/Core/Model/Resource/Setup.php(160): Mage_Core_Model_Resource_Setup->__construct('core_setup')
#9 /data/htdocs/xyz.com/magento/app/code/core/Mage/Core/Model/App.php(399): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#10 /data/htdocs/xyz.com/magento/app/code/core/Mage/Core/Model/App.php(329): Mage_Core_Model_App->_initModules()
#11 /data/htdocs/xyz.com/magento/app/Mage.php(627): Mage_Core_Model_App->run(Array)
#12 /data/htdocs/xyz.com/magento/index.php(80): Mage::run('', 'magento')#13 {main}";s:3:"url";s:22:"/magento/index.php/admin";s:11:"script_name";s:16:"/magento/index.php";s:4:"skin";s:7:"default";}
如何解决此问题 - :
"SQLSTATE[08004] [1040] Too many connections"
答案 0 :(得分:7)
"太多连接"错误就是这个意思。您试图一次超过允许的MySQL数据库连接数。我怀疑这是由于最大连接设置较低以及Magento尝试为每个请求执行的大量查询造成的。
您可以在MySQL配置文件中更改此设置:my.cnf(/etc/my.cnf)。寻找" max_connections"在重新启动之前设置并增加它:
[mysqld]
max_connections = 200
您设置的值很大程度上取决于您的可用系统资源。允许太多连接可能会淹没您的服务器并使其停止运行,因此您需要找到最适合您的最佳平衡点。
顺便说一句,您可能还想考虑禁用与MySQL数据库的持久连接,因为这可能是非常耗费资源的,但收效甚微:
allow_persistent = Off
答案 1 :(得分:6)
登录后端,使用客户维护下拉列表查找在线客户条目并检查数量。按IP排序,将最大数量的结果填充到Bots Vs浏览器中,看看它们是否是合法的Web索引器。如果不是,您可以暂时403来自特定IP的流量。
如果您无法登录后端,则需要开始进行服务器访问日志分析,以找出所有流量来自哪里。
如何解决此问题。如果你在共享主机上,你需要找到更好的东西。虽然在专用服务器上增加MySQL的最大连接数将有所帮助,但这取决于后端有足够的铁来实际运行数据库并增加负载。不加选择地增加max_connections可以阻止错误,但如果服务器低于标准,则会使站点致命地慢。
获取页面缓存模块,以便每次访客帐户加载页面时都不会运行Magento。将其与APC缓存结合起来进行操作码缓存。
我们在上周间歇性地体验了这条消息,因为谷歌,Bing,雅虎,百度和Yandex决定立即刷新所有内容。 Litespeed Web服务器有一个安全更新,它的版本5.1的php与APC缓存不兼容,我们不得不禁用它直到我们运行升级。
使用Magento时,涉及“连接太多”或“超出最大连接数”的错误会告诉您服务器正在过载。这可能是因为a)你的服务器很弱而无法与你的客户保持联系,b)你的服务器足以满足你期望的用户数量,但是你忘记了谷歌等网络索引器生成的请求占了大部分您的流量必须计算,或者c)您受到DDOS攻击。
注意:在某些情况下,如果您此时没有注意到压倒性的传入流量,可能需要重新启动mysql服务器才能重置之前流量峰值的记录锁定导致MySQL超过其连接限制。
答案 2 :(得分:2)
这是您的托管服务提供商的问题。联系他......
旧:
您的数据库看起来有问题,但我们这里没有完整的报告(缺少它的开头!)
我很确定您的数据库凭据已更改,也许您忘记在Magento配置中更新它?
在您的MySQL控制台中(如果您可以访问它...),您可以执行SHOW PROCESSLIST请求吗?
答案 3 :(得分:1)
您可以打开调试器,看看它是否显示任何有意义的错误消息? 转到index.php:
Mage::setIsDeveloperMode(true);
ini_set(‘display_errors’, 1);
或在.htaccess文件中更改此内容
答案 4 :(得分:0)
法师:: setIsDeveloperMode(真); ini_set('display_errors',1);
在index.php中更改1到0
解决了错误问题! 工作完美!