Não é possível iniciar o mysql: InnoDB: Upgrade após uma falha não é suportada

7

Estou tentando executar o MySQL a partir de uma instalação do Homebrew, mas ele continua falhando ao tentar mysql.server start .

Meu /usr/local/var/mysql/<name>.local.err lê como está e continua enviando essa mensagem de erro a cada alguns segundos.

2018-06-20T20:38:54.6NZ mysqld_safe Logging to '/usr/local/var/mysql/<computer name>.local.err'.
2018-06-20T20:38:54.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2018-06-20T20:38:54.379228Z 0 [System] [MY-010116] [Server] /usr/local/opt/mysql/bin/mysqld (mysqld 8.0.11) starting as process 6271
2018-06-20T20:38:54.383128Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2018-06-20T20:38:54.449869Z 1 [ERROR] [MY-012526] [InnoDB] InnoDB: Upgrade after a crash is not supported. This redo log was created with MySQL 5.7.20. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
2018-06-20T20:38:54.449947Z 1 [ERROR] [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
2018-06-20T20:38:54.919197Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2018-06-20T20:38:54.919769Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-06-20T20:38:54.919814Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-06-20T20:38:54.920978Z 0 [System] [MY-010910] [Server] /usr/local/opt/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.11)  Homebrew.
2018-06-20T20:38:54.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/bae.local.pid ended
    
por nipponese 20.06.2018 / 22:46

3 respostas

7

Eu tive exatamente os mesmos erros no meu log. Apenas para construir uma resposta nipônica.

Remova todas as versões do MySQL (eu tinha 5.7.21, 5.7.22 e 8.0.11): brew uninstall --force mysql

Confirme a remoção e reparação : brew services list e, em seguida, brew doctor

Renomeie o MySQL original : mv /usr/local/var/mysql /usr/local/var/old.mysql

Instale o MySQL mais recente (atualmente 8.0.11): brew install mysql

Instalação segura do MySQL : /usr/local/bin/mysql_secure_installation

Inicialmente recebi este erro: Error: Access denied for user 'dbadmin'@'localhost' (using password: YES)

Estou usando uma configuração no nível do usuário. Então, eu renomei .my.cnf e executei a instalação segura novamente.

mv /Users/[your username]/.my.cnf /Users/[your username]/old.my.cnf /usr/local/bin/mysql_secure_installation

Nos prompts de instalação eu insiro as seguintes opções Y, 0, Y, N, N, Y, Y .

Atualizando o MySQL Workbench Depois disso, ainda não consegui me conectar com o MySQL Workbench (GA 6.3.10), embora parecesse estar iniciando o MySQL finalmente. Eu estava recebendo o seguinte aviso de erro.

"O plugin de autenticação 'caching_sha2_password' não pode ser carregado: dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): imagem não encontrada"

Para resolver isso eu fiz o download do MySQL Workbench 8.0.11 rc (a versão Release Release). Eu usei a GUI para adicionar os usuários que eu tinha antes de aderir às novas regras de senha. Eu atualizei e renomeie ~ / .my.cnf com a senha mais segura. Em seguida, restaurei meus bancos de dados.

Neste ponto, consegui me conectar com o ambiente de trabalho usando o root e a nova senha que configurei durante a instalação segura.

Limpar (remova o diretório renomeado e seu conteúdo): rm -r /usr/local/var/old.mysql

    
por 22.06.2018 / 18:27
7

tldr; Uma nova versão do mysql foi instalada via Homebrew. Reverta para a versão instalada anteriormente.

brew switch mysql X.X.XX' and 'brew services restart mysql 

A história completa é que você provavelmente instalou uma nova versão do mysql com brew upgrade . Revise a saída de brew info mysql . Você pode ver mais de uma versão.

No meu caso, vi os dois itens:

/usr/local/Cellar/mysql/5.7.17
/usr/local/Cellar/mysql/8.0.11

Eu verifiquei mysql --version e o mais novo 8.0.11 estava em execução.

O Homebrew inclui o comando switch , que permite que você faça exatamente isso entre os serviços.

Execute isto substituindo a versão por sua conta:

brew switch mysql 5.7.17

Reinicie o mysql:

brew services restart mysql

Todos devem estar de volta em funcionamento.

    
por 29.07.2018 / 20:52
3

Parece que o problema foi uma instalação anterior em /usr/local/var/mysql .

Depois de desinstalar via homebrew, removendo /usr/local/var/mysql , executando brew doctor e reinstalando via homebrew, o problema desapareceu.

    
por 20.06.2018 / 23:04