Не могу попасть в админку
Не могу попасть в админку
Всем привет! Столкнулся с очень странной и непонятной проблемой, а именно - при переходе на стартовую страницу админки появляется ошибка с следующим содержанием:
Warning: Error while sending QUERY packet. PID=78268 in /home/a/alexzh/public_html/system/library/db/mysqli.php on line 18
Fatal error: Uncaught Exception: Error: MySQL server has gone away<br />Error No: 2006<br />SELECT * FROM `oc_extension` WHERE `type` = 'dashboard' ORDER BY `code` in /home/a/alexzh/public_html/system/library/db/mysqli.php:40 Stack trace: #0 /home/a/alexzh/public_html/system/library/db.php(45): DB\MySQLi->query('SELECT * FROM `...') #1 /home/a/alexzh/public_html/admin/model/setting/extension.php(6): DB->query('SELECT * FROM `...') #2 /home/a/alexzh/main_storage/modification/system/engine/loader.php(251): ModelSettingExtension->getInstalled('dashboard') #3 /home/a/alexzh/public_html/system/engine/proxy.php(47): Loader->{closure}(Array, Array) #4 /home/a/alexzh/main_storage/modification/admin/controller/common/dashboard.php(92): Proxy->__call('getInstalled', Array) #5 /home/a/alexzh/main_storage/modification/system/engine/action.php(79): ControllerCommonDashboard->index() #6 /home/a/alexzh/public_html/admin/controller/startup/router.php(26): Action->execute(Object(Registry), Array) #7 /home/a/alexzh/main_storage/modificatio in /home/a/alexzh/public_html/system/library/db/mysqli.php on line 40
Fatal error: Uncaught Exception: Error: MySQL server has gone away<br />Error No: 2006<br />REPLACE INTO `oc_session` SET session_id = 'a0f254ebf90569a11121f0af7e', `data` = '{\"currency\":\"RUB\",\"user_id\":\"1\",\"user_token\":\"eTCoYlou8bY6WSftYj5UemlqSqvJtlWD\",\"prmn.city_manager\":{\"country_id\":\"176\",\"country_name\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u044f\",\"country_name_gc\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u0438\",\"country_name_pc\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u0438\",\"zone_id\":\"4241\",\"zone_name\":\"\\u0421\\u0432\\u0435\\u0440\\u0434\\u043b\\u043e\\u0432\\u0441\\u043a\\u0430\\u044f\",\"zone_name_gc\":\"\\u0421\\u0432\\u0435\\u0440\\u0434\\u043b\\u043e\\u0432\\u0441\\u043a\\u043e\\u0439\",\"zone_name_pc\":\"\\u0421\\u0432\\u0435\\u0440\\u0434\\u043b\\u043e\\u0432\\u0441\\u043a\\u043e\\u0439\",\"prefix_zone_name\":\"\\u043e\\u0431\\u043b.\",\"district_name\":null,\"district_name_gc\":null,\"district_name_pc\":null,\"prefix_district_name\":null,\"city_name\":\"\\u0412\\u0435\\u0440 in /home/a/alexzh/public_html/system/library/db/mysqli.php on line 40
Такая же ошибка происходит при попытке зайти в модуль import/export pro от DevmanExtension. При этом и сайт и все остальные модули работают штатно.
Помогите, пожалуйста, разобраться и решить проблему
Warning: Error while sending QUERY packet. PID=78268 in /home/a/alexzh/public_html/system/library/db/mysqli.php on line 18
Fatal error: Uncaught Exception: Error: MySQL server has gone away<br />Error No: 2006<br />SELECT * FROM `oc_extension` WHERE `type` = 'dashboard' ORDER BY `code` in /home/a/alexzh/public_html/system/library/db/mysqli.php:40 Stack trace: #0 /home/a/alexzh/public_html/system/library/db.php(45): DB\MySQLi->query('SELECT * FROM `...') #1 /home/a/alexzh/public_html/admin/model/setting/extension.php(6): DB->query('SELECT * FROM `...') #2 /home/a/alexzh/main_storage/modification/system/engine/loader.php(251): ModelSettingExtension->getInstalled('dashboard') #3 /home/a/alexzh/public_html/system/engine/proxy.php(47): Loader->{closure}(Array, Array) #4 /home/a/alexzh/main_storage/modification/admin/controller/common/dashboard.php(92): Proxy->__call('getInstalled', Array) #5 /home/a/alexzh/main_storage/modification/system/engine/action.php(79): ControllerCommonDashboard->index() #6 /home/a/alexzh/public_html/admin/controller/startup/router.php(26): Action->execute(Object(Registry), Array) #7 /home/a/alexzh/main_storage/modificatio in /home/a/alexzh/public_html/system/library/db/mysqli.php on line 40
Fatal error: Uncaught Exception: Error: MySQL server has gone away<br />Error No: 2006<br />REPLACE INTO `oc_session` SET session_id = 'a0f254ebf90569a11121f0af7e', `data` = '{\"currency\":\"RUB\",\"user_id\":\"1\",\"user_token\":\"eTCoYlou8bY6WSftYj5UemlqSqvJtlWD\",\"prmn.city_manager\":{\"country_id\":\"176\",\"country_name\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u044f\",\"country_name_gc\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u0438\",\"country_name_pc\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u0438\",\"zone_id\":\"4241\",\"zone_name\":\"\\u0421\\u0432\\u0435\\u0440\\u0434\\u043b\\u043e\\u0432\\u0441\\u043a\\u0430\\u044f\",\"zone_name_gc\":\"\\u0421\\u0432\\u0435\\u0440\\u0434\\u043b\\u043e\\u0432\\u0441\\u043a\\u043e\\u0439\",\"zone_name_pc\":\"\\u0421\\u0432\\u0435\\u0440\\u0434\\u043b\\u043e\\u0432\\u0441\\u043a\\u043e\\u0439\",\"prefix_zone_name\":\"\\u043e\\u0431\\u043b.\",\"district_name\":null,\"district_name_gc\":null,\"district_name_pc\":null,\"prefix_district_name\":null,\"city_name\":\"\\u0412\\u0435\\u0440 in /home/a/alexzh/public_html/system/library/db/mysqli.php on line 40
Такая же ошибка происходит при попытке зайти в модуль import/export pro от DevmanExtension. При этом и сайт и все остальные модули работают штатно.
Помогите, пожалуйста, разобраться и решить проблему
- devimirochnik
- Разработчик дополнений
- Сообщения: 164
- Зарегистрирован: 14.04.2022
- Откуда: Россия
- Мои дополнения: devimirochnik
- Поблагодарил: 2 раз
- Спасибо: 10 раз
Re: Не могу попасть в админку
Здравствуйте
Пишите хостеру. Это проблемы с БД.
Пишите хостеру. Это проблемы с БД.
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
- AlexDW
- Разработчик дополнений
- Сообщения: 192
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 39 раз
- Спасибо: 69 раз
Re: Не могу попасть в админку
еще как вариант - пробуйте отключить модификатор этого модуля, обновить кэши и понаблюдать
если проблема исчезнет - вероятно причина в способе проверки лицензии именно этого модуля, возможно у автора какие-то сложности с сервером возникли
Re: Не могу попасть в админку
К сожалению, не помогло(
Разработчик ответил следующее (перевод с английского): Это ошибка с вашего сервера MYSQL, вероятно, будет решена, если вы увеличите директиву "wait_timeout" в настройках вашего сервера, свяжитесь, пожалуйста, со службой поддержки вашего хостинга.
Хостеру написал, но там посоветовали откатить БД, что тоже не помогло
Re: Не могу попасть в админку
Хостер, кроме отката БД пока ничего не посоветовал. Базу откатил, но это не помогло(
- AlexDW
- Разработчик дополнений
- Сообщения: 192
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 39 раз
- Спасибо: 69 раз
Re: Не могу попасть в админку
возможно что в этом и причина
в тройке баг с сессиями, из-за чего таблица с ними непомерно раздувается, что ни к чему хорошему не приводит
решение в виде модификатора здесь
https://github.com/opencart/opencart/is ... -480609923
создайте файл bugfix_session.ocmod.xml скопируйте в него код
Код: Выделить всё
<modification>
<name>Bugfix: Session</name>
<version>3.0.x-1.0</version>
<code>bugfix-session</code>
<author>mhccorp.com</author>
<!-- https://github.com/opencart/opencart/issues/7094 -->
<file path="system/library/session/db.php">
<operation>
<search><![CDATA[$this->expire = ini_get('session.gc_maxlifetime');]]></search>
<add position="after"><![CDATA[
if ($this->db) {
// remove entries older than gc_maxlifetime seconds + 1 day
$sql = "DELETE FROM `".DB_PREFIX."session` WHERE expire < DATE_SUB(NOW(), INTERVAL ".((int)$this->expire+86400)." SECOND);";
$this->db->query( $sql );
}
]]></add>
</operation>
</file>
</modification>
потом закиньте в папку system и обновите кеш модификаторов
- devimirochnik
- Разработчик дополнений
- Сообщения: 164
- Зарегистрирован: 14.04.2022
- Откуда: Россия
- Мои дополнения: devimirochnik
- Поблагодарил: 2 раз
- Спасибо: 10 раз
Re: Не могу попасть в админку
Ну я бы не стал чистить при каждом запросе табличку.
Хотя бы так
Ну и плюс в моём примере 30 дней - это как-то более объективно. Ну можно 7 дней поставить. Там просто столько сессий не накопится при небольшой посещаемости сайта, чтобы это было криптично.
Конечно, можно выставлять параметр сессии session.gc_maxlifetime, но многие ли это делают?)
Хотя бы так
Код: Выделить всё
if ($this->db) {
if (rand(1,10) <= 2) {
$this->db->query("delete from `" . DB_PREFIX . "session` where `expire` < DATE_SUB(NOW(), INTERVAL 30 DAY);");
}
}
Конечно, можно выставлять параметр сессии session.gc_maxlifetime, но многие ли это делают?)
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
- devimirochnik
- Разработчик дополнений
- Сообщения: 164
- Зарегистрирован: 14.04.2022
- Откуда: Россия
- Мои дополнения: devimirochnik
- Поблагодарил: 2 раз
- Спасибо: 10 раз
Re: Не могу попасть в админку
Ну и плюс учитывайте, что первая очистка такой здоровой таблицы это много времени может потребоваться.
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
- nikifalex
- Разработчик дополнений
- Сообщения: 314
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Не могу попасть в админку
индекс бы по expire еще.
а вообще такое бы по крону делать.
Но насчет сессии это все просто одно из предположений, и может не помочь
а вообще такое бы по крону делать.
Но насчет сессии это все просто одно из предположений, и может не помочь
Re: Не могу попасть в админку
К сожалению, не помогло( Размер таблицы сократился до 1,4 гб, но проблема осталась...
- nikifalex
- Разработчик дополнений
- Сообщения: 314
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Не могу попасть в админку
ошибка прямо сразу или спустя несколько секунд?
интересно было бы посмотреть на show full processlist;
интересно было бы посмотреть на show full processlist;
Re: Не могу попасть в админку
Спустя несколько секунд. Сначала долго грузится, а потом ошибка появляется.
Подскажите, что такое show full processlist?
- nikifalex
- Разработчик дополнений
- Сообщения: 314
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Не могу попасть в админку
phpmyadmin
этот запрос надо выполнить непосредственно по время этих тормозов, когда тупит но ошибки еще нет.
Re: Не могу попасть в админку
IdUserHostdbCommandTimeStateInfoRows_sentRows_examined=left =left Завершить=left775609738=leftalexzh=leftlocalhost=leftalexzh_main=leftQuery=left0=leftstarting=leftSHOW FULL PROCESSLIST=left0=left0=left Завершить=left775609739=leftalexzh=leftlocalhost=leftNULL=leftSleep=left0=left =leftNULL=left324=left324nikifalex писал(а): ↑14 ноя 2022, 08:51
phpmyadmin
этот запрос надо выполнить непосредственно по время этих тормозов, когда тупит но ошибки еще нет.
- nikifalex
- Разработчик дополнений
- Сообщения: 314
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Не могу попасть в админку
э.... там должна быть табличка, в табличке запросы. один из запросов ваш, а второй на котором сайт висит.
А у вас какая то тарабарщина. Но направление правильное.
скриншот что-ли сделайте.
Но важно отловить именно нужный момент
А у вас какая то тарабарщина. Но направление правильное.
скриншот что-ли сделайте.
Но важно отловить именно нужный момент
Re: Не могу попасть в админку
Да, я просто скопировал текст таблицы. Не разобрался сначала как скриншот сюда прикреплять.
Собственно, вот скрин: https://prnt.sc/tRv14ygwKqUA