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

Я использую Percona MySQL Server 5.6 (из пакетов) на Debian Wheezy (такое же поведение на Джесси). К сожалению, я всегда получаю это:

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

Я могу сказать о своей конфигурации, что

  • /etc/init.d/mysql нетронут
  • /etc/mysql/debian.cnf содержит действительные и рабочие (проверенные) учетные данные для debian-sys-maint

Я немного больше исследовал сценарий инициализации и пришел к выводу, что проблема, похоже, в 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

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

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

1 ответ

Я сталкивался с подобной проблемой, но с 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 ожидает завершения процесса выключения

Другие вопросы по тегам