Вопрос

После перехода на новый сервер я получаю проблему сбоя MySQL [1] один раз в день, который приходит на мою электронную почту и раздражает, не говоря уже о потенциальном воздействии. Есть намеки на то, как отладить эту проблему?

Очевидно, что авария происходит на $schedule->save() Поэтому я попытался обернуть его ... поймать, но это не помогло

SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Trace:
#0 /var/www/vhosts/site/store/lib/Zend/Db/Adapter/Pdo/Abstract.php(305): PDO->beginTransaction()
#1 /var/www/vhosts/site/store/lib/Zend/Db/Adapter/Abstract.php(495): Zend_Db_Adapter_Pdo_Abstract->_beginTransaction()
#2 /var/www/vhosts/site/store/lib/Varien/Db/Adapter/Pdo/Mysql.php(219): Zend_Db_Adapter_Abstract->beginTransaction()
#3 /var/www/vhosts/site/store/app/code/core/Mage/Core/Model/Resource/Abstract.php(76): Varien_Db_Adapter_Pdo_Mysql->beginTransaction()
#4 /var/www/vhosts/site/store/app/code/core/Mage/Core/Model/Abstract.php(313): Mage_Core_Model_Resource_Abstract->beginTransaction()
#5 /var/www/vhosts/site/store/app/code/core/Mage/Cron/Model/Observer.php(125): Mage_Core_Model_Abstract->save()
#6 /var/www/vhosts/site/store/app/code/core/Mage/Core/Model/App.php(1338): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#7 /var/www/vhosts/site/store/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#8 /var/www/vhosts/site/store/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('default', Array)
#9 /var/www/vhosts/site/store/cron.php(46): Mage::dispatchEvent('default')
#10
{main}

Настройки тайм -аута:

mysql> show global variables like '%timeout%';
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 50       |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 30       |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 3600     |
+----------------------------+----------+
10 rows in set (0.00 sec)
Это было полезно?

Решение

Как говорили другие, это, вероятно, вызвано давним сценарием. Любой сценарий, который занимает много времени для работы без использования базы данных, может потенциально тайм -аут.

У меня было это раньше. У нас есть скрипт, который подключается к удаленному серверу, загружает несколько сотен файлов XML, анализируется и преобразует их в файл .csv для импорта через встроенный модуль Importexport Magento. У нас есть пользовательский модуль регистрации, который позволяет нам отслеживать то, что произошло с нашими процедурами. Самое первое, что делает класс, - добавить строку в эту таблицу журналов, чтобы сказать, что началась рутина. Затем требуется 5-10 минут, чтобы принести удаленные файлы XML. После загрузки файлов он пытается написать еще одну запись журнала, чтобы сказать, что он закончен. С тех пор, как соединение MySQL было открыто с момента первого события журнала и с тех пор не использовалось, MySQL закрыл соединение, поскольку оно не получило запроса дольше, чем период времени ожидания.

Другие советы

В твоей /etc/mysql/my.cnf Попробуйте увеличить значение для max_allowed_packet

Например.

max_allowed_packet = 256M

Затем перезапустите MySQL.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top