Eu fiz o upgrade de Ubuntu 12.10
para Ubuntu 13.10
.
Depois de algum tempo, descobri que não exportava todos os meus bancos de dados MySQL. Alguns deles estão faltando. Eu ainda tenho um backup da minha partição /var/
, mas não posso simplesmente copiar os bancos de dados (diretórios) que estão faltando em /var/lib/mysql/
, ele não funcionará. O daemon do MySQL falhará ao reiniciar.
Eu não posso substituir todo o atual /var/lib/mysql/
com o backup, apenas para exportar as tabelas ausentes e mover o novo diretório de volta e importar as tabelas exportadas. Os bancos de dados e tabelas foram exibidos em phpMyAdmin
, mas todo o conteúdo estava vazio.
O mais irritante é que o daemon irá falhar ao reiniciar após mexer rapidamente. O MySQL transformou * em uma garotinha sensível. quando eu mover uma cópia exata do meu diretório mysql (novo, intocado e pós-upgrade) de volta, ele ainda não será reiniciado e eu tenho que apt-get install mysql-server-5.5 --reinstall
para ele funcionar.
Então, há alguma maneira de recuperar um banco de dados de arquivos de backup? Eles estão sentados lá tão convenientemente, nomeados exatamente como o banco de dados, com arquivos chamados exatamente como as tabelas.
*) Isso costumava funcionar. Normalmente eu exporto minhas coisas, então da última vez que fiz isso, alguns anos atrás, mas costumava funcionar. Agora o MySQL age como um bebê chorão. Novo nem sempre é melhor.
Pelo menos o MongoDB apenas come os arquivos que você colocar em /var/lib/mongodb
, desde que seja adequado bson
.
Embora o log de erros seja muito detalhado, realmente não me ajuda.
Cem deles:
131120 5:23:48 [ERRO] Não foi possível encontrar ou abrir a tabela some_database / some_table de
o dicionário interno de dados do InnoDB, embora o arquivo .frm para o
tabela existe. Talvez você tenha apagado e recriado dados do InnoDB
arquivos, mas esqueceu-se de excluir os arquivos .frm correspondentes
de tabelas InnoDB, ou você moveu arquivos .frm para outro banco de dados?
ou, a tabela contém índices que esta versão do mecanismo
não suporta.
Consulte o link
como você pode resolver o problema.
E algumas outras mensagens sobre o InnoDB que eu não posso reproduzir porque eu acidentalmente atualizei o log no meu editor enquanto reinstalava o mysql pela n-ésima vez.
O que é esse material do InnoDB? É como o fraco irmão chorão ou irmã do MySQL desenvolvido e versátil. Eles fizeram o padrão no servidor 5.5. Provavelmente com um bom motivo, mas até agora não me fez nenhum sanduíche.