Не знаете, что не так с MAGENTO? - PullRequest
1 голос
/ 31 марта 2012

Не знаю почему, но моя установка 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"

Ответы [ 5 ]

7 голосов
/ 31 марта 2012

Ошибка "Too Many Connections" означает именно это. Вы пытаетесь сделать больше чем разрешенное количество подключений к базе данных MySQL за один раз. Я подозреваю, что это вызвано низкой настройкой подключений и большим количеством запросов, которые Magento пытается выполнить для каждого запроса.

Вы можете изменить этот параметр в вашем конфигурационном файле MySQL: my.cnf (/etc/my.cnf). Найдите параметр max_connections и увеличьте его перед перезапуском:

[mysqld]
max_connections = 200

Установленное вами значение во многом зависит от доступных системных ресурсов. Если вы допустите слишком много подключений, это может затопить ваш сервер и привести к остановке, поэтому вам нужно будет найти правильный баланс для того, что лучше всего подходит для вас.

Кроме того, вы можете также рассмотреть возможность отключения постоянных подключений к вашей базе данных MySQL, поскольку это может быть довольно ресурсоемким при небольшом выигрыше:

allow_persistent = Off 
6 голосов
/ 31 марта 2012

Войдите в свой бэкэнд, используйте раскрывающийся список обслуживания клиентов, чтобы найти запись «Интернет-клиенты» и проверить количество. Сортируйте по IP и помещайте результаты по наибольшему количеству в боты против браузеров, чтобы увидеть, являются ли они законными веб-индексаторами. Вы можете временно 403 трафика с определенных IP-адресов, если это не так.

Если вы не можете войти в серверную часть, то вам нужно начать анализ журналов доступа к серверу, чтобы выяснить, откуда поступает весь трафик.

Как решить эту проблему. Если вы пользуетесь виртуальным хостингом, вам нужно найти что-то лучшее. Хотя увеличение максимального количества подключений для MySQL на выделенном сервере поможет, это зависит от наличия достаточного количества железа на бэкэнде для фактического запуска базы данных с повышенной нагрузкой. Увеличение max_connections без разбора может остановить ошибку, но сделать сайт смертельно медленным, если сервер ниже пар.

Получите модуль кэширования страницы, чтобы Magento не запускался каждый раз, когда гостевая учетная запись загружает страницу. Объедините это с кэшем APC, чтобы выполнить кэширование кода операции.

Мы периодически сталкивались с этим сообщением на прошлой неделе, потому что Google, Bing, Yahoo, Baidu и Яндекс решили обновить все сразу. Было выпущено обновление безопасности для веб-сервера Litespeed, которое сделало его версию 5.1 php несовместимой с кешем APC, и нам пришлось отключить его до запуска обновления.

В Magento ошибки, связанные с «слишком много подключений» или «превышено максимальное количество подключений», указывают на то, что ваш сервер перегружен. Это может быть связано с тем, что: а) у вас слабый сервер, и он не успевает за вашими клиентами, б) ваш сервер соответствовал ожидаемому числу пользователей, но вы забыли, что запросы, генерируемые веб-индексаторами, такими как Google, составляют большинство ваш трафик и должен быть рассчитан для, или c) вас атакует DDOS.

Примечание: При определенных условиях, если вы не замечаете перегрузку входящего трафика в данный момент времени, возможно, потребуется перезапустить сервер mysql, чтобы сбросить блокировки записи из предыдущего всплеска трафика, который был вызван MySQL превысит лимит подключения.

2 голосов
/ 31 марта 2012

Это проблема вашего хостинг-провайдера. Свяжитесь с ним ...


Old:

Похоже, у вас есть проблема с вашей базой данных, но у нас нет полного отчета здесь (начало отсутствует!)

Я почти уверен, что ваши учетные данные в БД изменились, может, вы забыли обновить их в своем конфиге Magento?

В вашей консоли MySQL (если вы можете получить к ней доступ ...) вы можете сделать запрос SHOW PROCESSLIST?

1 голос
/ 31 марта 2012

Можете ли вы включить отладчик и посмотреть, выводит ли он какое-либо значимое сообщение об ошибке?Перейдите в index.php:

Mage::setIsDeveloperMode(true);
ini_set(‘display_errors’, 1);

или измените его в файле .htaccess

0 голосов
/ 02 октября 2013

Mage :: setIsDeveloperMode (истина); ini_set («display_errors», 1);

ИЗМЕНЕНИЕ 1 ДО 0 IN index.php

Это решает проблему с ошибкой! Работает отлично!

...