Eu restaurei a tabela apenas de
.frm
e .idb
arquivos. Obtenha a consulta SQL para criar as tabelas
Se você já conhece o esquema de suas tabelas, pode pular esta etapa.
-
Primeiro, instale os Utilitários MySQL .Então você pode usarmysqlfrm
comando no prompt de comando (cmd).
-
Segundo, obtenha as consultas SQL de.frm
arquivos usandomysqlfrm
comando:
mysqlfrm --diagnostic <path>/example_table.frm
Então você pode obter a consulta SQL para criar a mesma tabela estruturada.
CREATE TABLE `example_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(150) NOT NULL,
`photo_url` varchar(150) NOT NULL,
`password` varchar(600) NOT NULL,
`active` smallint(6) NOT NULL,
`plan` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;
Crie as tabelas
Crie a(s) tabela(s) usando a consulta SQL acima.
Se os dados antigos ainda existirem, talvez seja necessário descartar primeiro o respectivo banco de dados e tabelas. Certifique-se de ter um backup dos arquivos de dados.
Restaurar os dados
Execute esta consulta para remover novos dados da tabela:
ALTER TABLE example_table DISCARD TABLESPACE;
Isso remove as conexões entre o novo
.frm
arquivo e o (novo, vazio) .idb
Arquivo. Além disso, remova o .idb
arquivo na pasta. Em seguida, coloque o antigo
.idb
arquivo para a nova pasta, por exemplo:cp backup/example_table.ibd <path>/example_table.idb
Certifique-se de que o
.ibd
arquivos podem ser lidos pelo mysql
usuário, por exemplo executando chown -R mysql:mysql *.ibd
na pasta. Execute esta consulta para importar dados antigos:
ALTER TABLE example_table IMPORT TABLESPACE;
Isso importa dados do
.idb
arquivo e irá restaurar os dados.