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 usarmysqlfrmcomando no prompt de comando (cmd).
-
Segundo, obtenha as consultas SQL de.frmarquivos usandomysqlfrmcomando:
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.