Назад | Перейти на главную страницу

mysqladmin не ждет полного выключения (или скрипт debian init.d сломан?)

Я запускаю Percona MySQL server 5.6 (из пакетов) на debian wheezy (такое же поведение на jessie). К сожалению, я всегда получаю это:

# service mysql stop
[FAIL] Stopping MySQL (Percona Server): mysqld failed!

Про свою конфигурацию могу сказать, что

Я исследовал сценарий инициализации еще немного и пришел к выводу, что проблема, похоже, в mysqladmin.

Сценарий инициализации вызывает

mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown

После возврата mysqladmin проверяет, был ли сервер должным образом выключен. Кажется, проблема в этом: mysqladmin возвращается ДО того, как он был полностью выключен, а затем проверяет СЛИШКОМ РАНЬШЕ, что он все еще работает.

Я также смотрел файлы журнала, исследуя это. Моя находка:

2017-01-05 00:18:49 12595 [Note] InnoDB: Starting shutdown...
2017-01-05 00:18:49 7f70e4df7700 InnoDB: Dumping buffer pool(s) to .//ib_buffer_pool
2017-01-05 00:18:49 7f70e4df7700 InnoDB: Buffer pool(s) dump completed at 170105  0:18:49
2017-01-05 00:18:49 12595 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool

Это момент возврата mysqladmin. Тем не менее это продолжается:

2017-01-05 00:18:51 12595 [Note] InnoDB: Shutdown completed; log sequence number 120471740085
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'ARCHIVE'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'MyISAM'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'MEMORY'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'CSV'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'MRG_MYISAM'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'sha256_password'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'mysql_old_password'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'mysql_native_password'
2017-01-05 00:18:51 12595 [Note] Shutting down plugin 'binlog'
2017-01-05 00:18:51 12595 [Note] /usr/sbin/mysqld: Shutdown complete

Доказательство: я добавил "sleep 5" в свой сценарий инициализации после выключения, чтобы отложить проверку - работает.

Теперь у меня два вопроса: 1. Не работает ли на этом этапе сценарий инициализации debian? 2. Есть ли способ настроить сервер таким образом, чтобы mysqladmin ждал полного завершения работы?

Я столкнулся с аналогичной проблемой, но с mysql 5.7 проблема, которую я думал, будет заключаться в том, что MySQL не соблюдает тайм-аут выключения по умолчанию, равный 3600 секундам. Поэтому, когда я использовал следующую команду выключения, mysqladmin ждал, пока процесс выключения не завершится успешно.

mysqladmin -u имя пользователя -p пароль выключение --shutdown-timeout = 3600

Добавлено 12 марта 2019 г .:

В основном проблема была связана со следующей ошибкой https://bugs.mysql.com/bug.php?id=91803 . После добавления pid-файла в my.cnf mysqladmin ожидает завершения процесса завершения работы.