[Решено] Капкан Друпала - попал в водоворот 'MySQL server has gone away' error

26 июля 2012 в 1:16
Аватар пользователя yavor yavor 0 30

Модуль Updates был отключен на долгие месяцы. Хостер, хоть и итальянский, не особо напрягается. Хостинг шареный (100 евро в год), но с возможностью менять php.ini. При обновлении возникали проблемы типа 'MySQL server has gone away' error..., поэтому логично выключил месяцы назад обновления. Поскольку в последнее время проблемы начали нарастать лавинообразно, заявили хостеру и он ответил, что может быть это связано с проблемами на сервере, которые они разрешат. Мы решили тем временем включить Updates и что-то изменить, и тут началось бесконечное: MySQL server has gone...

Понятно, что данных много и это блокирует раздутый запрос к MSQL. Но беда в том, что теперь никаким образом нельзя подкрасться к странице модулей и отключить Updates: в любом запросе через 30 секунд падает пелена ошибок MySQL server has gone away'.

Php.ini настроен корректно. Проблемы хостера - одно дело, но кажется, что это мертвая петля Друпала. Мы используем Administration menu для редакции модулей и всего остального. Представьте себе, что из Administration menu вы хотите поменять настройки чего угодно. Итог - череда сообщений MySQL server has gone away. Никакое терпение не помогает. Таблицы в MSQL ошибок не содержат, изменение на Inno_db не дает ничего, потому что сайт оказался в замкнутом круге. Пробуем запустить Крон - MySQL server has gone. Пробуем какое угодно действие - одно и то же.

Если посоветуете, буду очень благодарен!

Комментарии

Вы как еврей ответили мне вопросом на вопрос. К настройкам базы данных Друпала и ускорению выдачи страниц - отношение прямое. Но суть в цикле, который на подпускает к возврату на страницу редактирования модулей и в принципе - ни к чему. Можно создавать ноды, но любой доступ к Админу обречен на ожидание и MySQL server has gone... в итоге. Надеюсь, что вы меня поняли по существу, а не в терминологии.
Спасибо!

26 июля 2012 в 1:33

Прошу вас не музицировать, поскольку я не задал вопрос на вашем блоге. Вы, наверное, устали, раз задаете вопросы задающему вопрос.

26 июля 2012 в 2:14

я не мизуцирую, а пытаюсь понять логику человека, не способного сделать один запрос в гугл.
в чём прямое отношение то выражается?

26 июля 2012 в 2:36

если всё так плохо то можете скачать весь сайт локально и провести все нужные обновления локально же. после чего залить обратно. за пару часов в период простоя сервера можно управиться. в крайнем случае закройте сайт на обслуживание. три часа должно хватить. а с 2 ночи до 5 утра ничего особенного не должно происходить.

в пхп.ини можно поднастроить параметры ожидания ответа для драйвера БД, но скорее всего настраивать нужно ещё и мускул-сервер через конфиг, если это возможно.

26 июля 2012 в 5:34

Локально будут те же проблемы. У меня есть сохраненная копия базы данных до включения Update. Вы посоветуете ее залить на хост или есть решение с перспективой получше?

26 июля 2012 в 10:23

"yavor" wrote:
Но беда в том, что теперь никаким образом нельзя подкрасться к странице модулей и отключить Updates: в любом запросе через 30 секунд падает пелена ошибок MySQL server has gone away'.

таблица system поставье апдейту 0 и модуль отключится

26 июля 2012 в 11:57

"NaZg" wrote:
таблица system поставье апдейту 0 и модуль отключится

Вы имеете в виду - в PHPMYadmin? В этой таблице нет поля update. Или нужен скрипт dля query? Простите за безграмотность. В таблице поля модулей system, menu, path, ping, statistics,tracker и т.д, но апдеит поля нет.

26 июля 2012 в 12:39

"q2_faith" wrote:
думаю стоит поменять хостинг)

Это лучший итальянский хостер - Register.it. Думаю, что проблема в конкретном случае не в их системных администраторах, а в модуле Update, который после включения создает лавину запросов и зашкаливает все: от Крона до просмотра пользователей и настройки любого модуля.

26 июля 2012 в 12:43

"yavor" wrote:
В этой таблице нет поля update.

поиск → modules/update/update.module

"yavor" wrote:
Или нужен скрипт dля query?

если не владее те терминологиев, то лучше воздержитесь от использования, мой Вам совет

Стяните сайт на локалхост, обновите драшем и залейте обратно

26 июля 2012 в 12:44

"yavor" wrote:
Думаю, что проблема в конкретном случае не в их системных администраторах, а в модуле Update, который после включения создает лавину запросов и зашкаливает все: от Крона до просмотра пользователей и настройки любого модуля.

а ну тогда ладно. хостер хороший, модуль плохой. ждем следующих постов с уже другими плохими модулями

26 июля 2012 в 12:51

"q2_faith" wrote:
а ну тогда ладно. хостер хороший, модуль плохой

Виноват лично Дрис, что включил такой бажный модуль в ядро!

26 июля 2012 в 12:53

"NaZg" wrote:
поиск → modules/update/update.module

Это в директории на сервере. Открыл файл modules/update/update.module, там функции, а не таблицы. В DB нет такой строчки, как вам я и говорил.

26 июля 2012 в 12:58

Поверьте, это не только проблема хостера. Сказано здесь: http://www.drupal.ru/node/3666.

Я хотел бы решить проблему там, где она возникла с минимальными потерями. Ирония уместна, хотя и не помогает особо, согласитесь. Не ишу плохих - тут технический сбой в админе, а с какой стороны ковырнуть - задача.

26 июля 2012 в 13:07

"yavor" wrote:
Я хотел бы решить проблему там, где она возникла с минимальными потерями.

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

26 июля 2012 в 13:24

"xxandeadxx" wrote:
продолжайте ковырять php.ini, вдруг поможет

А что именно? Там увеличены параметры памяти

safe_mode = Off
[MySQL]
mysqli.reconnect = On

max_execution_time = 120 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 512M ; Maximum amount of memory a script may consume (64MB)
и т.д.
Не пробовал это ignore_repeated_errors = Off поменять на ON. Однако как выключить системный модуль Update при таком Loop в админе?

26 июля 2012 в 13:41

РЕШЕНО!

В фаиле php.ini поменял в строке

; Allow or prevent reconnect
mysqli.reconnect = Off на On

Сайт успокоился, слава Богу! теперь получается, что с меня магарыч коллеге "xxandeadxx", который задал три вопроса и дал один дельный совет. Спасибо, дорогой!

Спасибо всем! Тему можно считать закрытой.

26 июля 2012 в 15:00

"yavor" wrote:
Это в директории на сервере. Открыл файл modules/update/update.module, там функции, а не таблицы. В DB нет такой строчки, как вам я и говорил.

забьёмся на 100 баксов?
И я имел в виду запись в БД

"yavor" wrote:
mysqli.reconnect = Off на Onn

onn такой опции нет

26 июля 2012 в 14:53

"RxB" wrote:
А как же кривые модули и такой же друпал?

кривизна друпаловских модулей правится через php.ini опцией ONNNNNNNNNNNNNNN

26 июля 2012 в 15:04

"NaZg" wrote:
onn такой опции нет

Опечатка на радостях вышла. Конечно On. Исправил в предтексте. Вам баксов не жалко? Я вам скрин таблицы по почте, а вы мне 100 баксов на счет. Кто свидетели транзакции?

Теперь надо попросить хостера исправить my.cnf (к нему доступа у нас нет) согласно спецификации на http://drupal.org/node/259580. Однако пусть сначала разберутся со своими завалами, может там оверселлинг или техпроблемы. Затем попросим сделать и прислать копию.

Спасибо!

Насчет кривизны модулей: ошибка случилась по факту включения именно Update status. Многие советуют забыть о нем, если нет намерения делать апдейт. Потом, мое мнение до и после одинаково положительно. Буду рад, если это решение кому-то поможет. Мне нравится Друпал. Один раз попался на удочку, теперь удочка у меня в руках - вот и вся разница.

26 июля 2012 в 15:16

"yavor" wrote:
Однако пусть сначала разберутся со своими завалами, может там оверселлинг или техпроблемы.

"yavor" wrote:
Это лучший итальянский хостер - Register.it. Думаю, что проблема в конкретном случае не в их системных администраторах, а в модуле Update, который после включения создает лавину запросов и зашкаливает все: от Крона до просмотра пользователей и настройки любого модуля.

Я всё же поддерживаю коллегу, предать анафеме Дриса Байтаерта!

26 июля 2012 в 15:23