Eu instalei acidentalmente o MySQL 8 e fiz muito trabalho lá, criando muitos dados. Em seguida, fiz backup de todos os bancos de dados usando mysqldump.
Mais tarde, percebi que precisava fazer o downgrade de volta para o MySQL 5.7 (depois de nem mesmo ter percebido que havia atualizado).
Desinstalei o 8 e instalei o 5.7, mas estou tendo problemas para importar meus dados do arquivo .sql do dump.
Primeiro, recebi o erro ERROR 1273 (HY000) at line 1753: Unknown collation: 'utf8mb4_general_ci'
, que resolvi usando o Notepad ++ para substituir:
utf8mb4_general_ci
comutf8_unicode_ci
utf8mb4
comutf8
utf8_unicode_520_ci
comutf8_unicode_ci
Então eu também deletei a seção do arquivo .sql relacionada ao banco de dados 'mysql' .
Agora o comando mysql < alldb.sql
é executado sem erros, mas quando vou ver meus dados, muitos deles estão faltando.
PS Sinto-me otimista de que alguém possa me ajudar, mas é um pouco preocupante que os documentos do MySQL 8 digam:
O downgrade do MySQL 8.0 para o MySQL 5.7 ou de uma versão do MySQL 8.0 para uma versão anterior do MySQL 8.0 não é suportado. A única alternativa com suporte é restaurar um backup feito antes da atualização. Portanto, é imperativo que você faça backup de seus dados antes de iniciar o processo de atualização.
Você deve remover o conjunto e agrupamento de caracteres utf8mb4 e adicionar o conjunto de caracteres relevante em seu arquivo de backup e tentar restaurar.
Curti :
Eu acho que você ainda enfrentará problemas para a restauração do esquema mysql, pois sua arquitetura é alterada no MySQL 8.0 do que no MySQL 5.7
Na verdade, minha pergunta parecia ter uma premissa falsa.
Talvez meus dados não estivessem faltando.
2 fatores me levaram a acreditar que sim.
Primeiro, quando eu corri:
Eu vi bancos de dados que eram muito menores do que antes (por exemplo, 0,5 MB na v5.7 em vez de 54,8 MB na v8.0).
Mas ao observar as contagens de linhas de várias tabelas, elas parecem ser as mesmas em 5.7 e em 8.0.
Em segundo lugar, tive alguma confusão sobre nomes de usuários e senhas no banco de dados 'mysql' versus na tabela 'usuários' de um dos bancos de dados de um dos meus aplicativos.