Eu extraí o diretório de dados do mysql de um backup e preciso obter o esquema de uma tabela antiga, no entanto, é um backup de uma máquina diferente.
Hoje li vários tutoriais sobre como fazer isso, mas sempre que parece falhar ou acabo tendo que reinstalar o mysql porque o mysql trava ou trava. Eu tentei o seguinte:
- Crie um banco de dados diferente
- Crie tabela com o mesmo nome nesse banco de dados
- Substituir arquivo
- Parar / ligar o motor
- Recuperar do
.frm
arquivo
Eu tentei em várias ordens e combinações.
Existe alguma ferramenta externa que pode extrair o esquema do .frm
arquivo? Eu posso ver os nomes das colunas se eu abrir o arquivo. Dei uma olhada, mas não consigo encontrar nada que me permita fazer isso.
Desde já, obrigado.
Respostas:
No TwinDB, criamos uma interface da web para
mysqlfrm
. É grátis e fácil de usar.Para recuperar a estrutura da tabela, basta fazer o upload do arquivo .frm.
Aqui estão os passos. 1. Abra https://recovery.twindb.com/ . Clique em "Recuperar estrutura"
No próximo submenu, clique em "do arquivo .frm"
Na próxima exibição, clique em "Procurar" e selecione um arquivo .frm em um disco local. Clique em "Upload"
Espere até que esteja fazendo a mágica
Obtenha a estrutura recuperada.
Também é possível fazer upload de um arquivo morto com vários arquivos .frm. O site irá recuperá-los completamente.
fonte
mysqlfrm
(baixei a versão 1.6.5) e executemysqlfrm --diagnostic /path/to/my_table.frm
Eu já respondi perguntas como essa antes
Dec 21, 2011
: Compactação de tabela no InnoDB?Feb 03, 2012
: Como recuperar a estrutura da tabela MySQL a partir de arquivos FRMApr 23, 2012
: restaurar tabela do arquivo .frm e .ibd?Mencionei um blog do Chris Calendar sobre como conectar
.ibd
arquivos ao dicionário de dados.Se você não o
.ibd
acompanha.frm
, é provável que o MySQL esteja rodando com innodb_file_per_table desativado. Por favor, consulte oFeb 03, 2012
post sobre isso. Se este for Linux, certifique-se de executarantes de iniciar o mysql.
De uma chance !!!
INFORMAÇÕES SUPLEMENTARES
No final desse último blog, diz:
ATUALIZAÇÃO 11-06-2013 14:05 EDT
Tenho boas notícias. Eu instalei a versão do Windows do MySQL Utilities. Testei o programa mysqlfrm na linha de comando. Eu testei obtendo as
.frm
informações do user.frm no esquema mysql. Aqui está o que eu tenho:Realmente funciona. O banco de dados está sendo executado no meu computador desktop usando a porta 3306. Eu tive que fornecer o 3307 como uma porta para executar um processo gerado.
Eu poderia mover o
.frm
de uma caixa Linux para a máquina Windows e fazer o mesmo.De uma chance !!!
fonte