Рейтинг:0

Журнал MySQL заполняется нежелательной «информацией о состоянии» при перезагрузке сервера из-за SIGHUP

флаг dj

Это преследует меня некоторое время, поэтому пришло время спросить.

MySQL журнал ошибок заполняется «информацией о состоянии» при перезагрузке сервера из-за ПОДПИСАТЬСЯ. Вот ссылка, описывающая поведение: Ответ сервера MySQL на сигналы SIGHUP

Я понимаю, что происходит, но не знаю, как это исправить.

У меня есть один скрипт, который управляет запуском/остановкой mysqld: /etc/init.d/mysql

И вот исходный файл mysql-helpers на который ссылается сценарий init.d.

Я не могу найти, откуда приходит SIGHUP? Или, может быть, это исходит от ОС? Дебиан 10.

Редактировать

Делает перезапуск службы mysql или же останавливаться никогда не создает дополнительную запись в журнале, так что, возможно, это как-то связано с процессом выключения во время перезагрузки | остановки сервера? Я недостаточно понимаю SIGHUP, чтобы определить, на правильном ли я пути или нет.

флаг us
Пожалуйста, добавьте информацию о вашей операционной системе. Ваш init.d-скрипт вызывается во время штатного завершения работы системы?
Jeff avatar
флаг dj
ОС — Debian 10 Buster с ядром по умолчанию. Сценарий init.d вызывается во время `shutdown -r now` или `shutdown -h now`. Я не уверен, что это «упорядоченное» отключение или нет.
Cameron Kerr avatar
флаг id
Это виртуальная машина или физическая машина? Я спрашиваю только потому, что (много) лет назад я столкнулся с проблемой, когда многие SIGHUP происходили из-за отказа памяти, поэтому тестирование памяти может быть полезным... но это если определенно хвататься за соломинку. Я бы сначала начал с просмотра того, что еще работает на коробке. Какой-нибудь мониторинг/метрики/управление конфигурацией?
Cameron Kerr avatar
флаг id
SIGHUP отправляется в MySQL, когда вы выполняете такие действия, как сброс таблиц или журналов грантов... связано ли поведение, которое вы видите, с такими инструментами, как logrotate? Есть ли что-нибудь странное в таблице mysql.users и т. д.? Что можно определить, исходя из того, когда происходит действие?
Jeff avatar
флаг dj
@CameronKerr Машина представляет собой виртуальную машину. Программное обеспечение для мониторинга не запущено. Единственное, о чем я могу думать, это, возможно, о замене killall на mysqladmin shutdown в скрипте /etc/init.d/mysql. Хотя не уверен. Однако знать, *когда* SIGHUP отправляется в mysqld, полезно. В то же время, любые другие предложения более чем приветствуются.
флаг us
если во время выключения ваш init.d-скрипт не запускается, все остальные процессы (включая mysql) получат SIGHUP, за которым следует SIGKILL, похоже, это то, что там происходит.
Jeff avatar
флаг dj
@Nils Ваш комментарий оказался правильным ответом. Если вы хотите опубликовать ответ, я отмечу его как правильный. Окончательным решением оказалось изменение сценария запуска/остановки с sysvinit на systemd.
Рейтинг:0
флаг us

Если во время выключения ваш init.d-скрипт не запускается, все остальные процессы (включая mysql) получат SIGHUP, за которым следует SIGKILL, похоже, это то, что там происходит.

Jeff avatar
флаг dj
Именно это и происходило. Перешел с init.d на systemd и теперь все в порядке.

Ответить или комментировать

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