Eu redimensionei uma VM do Azure e agora o banco de dados MySQL em execução no Windows dentro da VM está morto. Estou vendo o erro fatal abaixo na inicialização. Eu tentei executar mysql_upgrade como ele sugere, mas apenas erros dizendo que não pode se conectar. Alguém tem alguma ideia de como consertar isso?
2016-07-12T09:59:48.426367Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2016-07-12T09:59:48.426367Z 0 [Note] IPv6 is available.
2016-07-12T09:59:48.426367Z 0 [Note] - '::' resolves to '::';
2016-07-12T09:59:48.426367Z 0 [Note] Server socket created on IP: '::'.
2016-07-12T09:59:48.426367Z 0 [Note] Shared memory setting up listener
2016-07-12T09:59:48.438315Z 0 [Note] InnoDB: Loading buffer pool(s) from C:\ProgramData\MySQL\MySQL Server 5.7\Data\ib_buffer_pool
2016-07-12T09:59:48.455584Z 0 [Note] InnoDB: Buffer pool(s) load completed at 160712 9:59:48
2016-07-12T09:59:48.455584Z 0 [ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
2016-07-12T09:59:48.455584Z 0 [ERROR] Aborting
Finalmente resolvido! Isso funcionou para mim:
/etc/init.d/mysqld start --skip-grant-tables && mysql_upgrade
Assim que a atualização for bem-sucedida, você faz o seguinte:
/etc/init.d/mysqld restart
Ou, você pode parar e iniciar o mysqld separadamente.Eu estava bloqueado em erros de mysql ontem no Centos 6.
Isso realmente economiza seu dia se você instalou uma versão diferente do mysql em seu sistema enquanto o sistema já tinha outra versão do mysql instalada. É muito provável que ocorram diferentes tipos de erros nessa situação.
--skip-grant-tables pode ser útil para tirá-lo dessa situação. Se você tiver alguma preocupação com segurança, verifique este link sobre como usar esta opção com segurança.
Mais detalhes em --skip-grant-tables: Isso permite que qualquer pessoa se conecte sem uma senha e com todos os privilégios e desativa as instruções de gerenciamento de contas, como ALTER USER e SET PASSWORD. Fonte: Clique aqui para saber mais sobre skip grant no site oficial do mysql
Kruthika
Outro sinalizador que a documentação de atualização do mysql não menciona completamente é:
--force
./mysql_upgrade -u root -p
Em minhas atualizações anteriores, um comando com falha mostrou este aviso:Se a
skip-grant-tables
opção falhar, como costuma acontecer comigo no Mac OS X... O último recurso é forçar a atualização de todas as tabelas com:./mysql_upgrade -u root -p --force
.Além
ALTER TABLE
ouREPAIR TABLE
depois, para garantir que todas as tabelas sejam totalmente reconstruídas.