Estou executando o servidor Percona MySQL 5.6 (de pacotes) no debian wheezy (mesmo comportamento no jessie). Infelizmente eu sempre entendo isso:
# service mysql stop
[FAIL] Stopping MySQL (Percona Server): mysqld failed!
Eu posso dizer sobre minha configuração que
Eu investiguei o script init um pouco mais e cheguei à conclusão de que o problema parece ser mysqladmin.
O script de inicialização chama
mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
Após mysqladmin retornar, ele verifica se o servidor foi encerrado corretamente. Agora, este parece ser o problema: mysqladmin retorna ANTES de ter sido desligado completamente e, em seguida, verifica TOO EARLY que ainda está em execução.
Eu também estava assistindo aos arquivos de log enquanto investigava isso. Minha descoberta:
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
Este é o momento em que mysqladmin retorna. Ainda continua:
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
Prova: Eu adicionei "sleep 5" no meu script de inicialização após o desligamento para atrasar a verificação.
Agora minhas duas perguntas: 1. O script de inicialização do debian está quebrado neste momento? 2. Existe uma maneira de configurar o servidor de forma que o mysqladmin espere pelo desligamento completo?