Saya memulihkan tabel hanya dari .frm dan .idb file.
Dapatkan kueri SQL untuk membuat tabel
Jika Anda sudah mengetahui skema tabel Anda, Anda dapat melewati langkah ini.
-
Pertama, instal Utilitas MySQL .Kemudian Anda dapat menggunakan
mysqlfrmperintah di command prompt (cmd). -
Kedua, dapatkan kueri SQL dari
.frmfile menggunakanmysqlfrmperintah:mysqlfrm --diagnostic <path>/example_table.frm
Kemudian Anda bisa mendapatkan kueri SQL untuk membuat tabel terstruktur yang sama. Seperti ini:
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;
Buat tabel
Buat tabel menggunakan kueri SQL di atas.
Jika data lama masih ada, Anda mungkin harus menghapus database dan tabel masing-masing terlebih dahulu. Pastikan Anda memiliki cadangan file data.
Pulihkan data
Jalankan kueri ini untuk menghapus data tabel baru:
ALTER TABLE example_table DISCARD TABLESPACE;
Ini akan menghapus koneksi antara .frm yang baru file dan (baru, kosong) .idb mengajukan. Hapus juga .idb file dalam folder.
Kemudian, masukkan .idb yang lama file ke dalam folder baru, mis.:
cp backup/example_table.ibd <path>/example_table.idb
Pastikan bahwa .ibd file dapat dibaca oleh mysql pengguna, mis. dengan menjalankan chown -R mysql:mysql *.ibd dalam folder.
Jalankan kueri ini untuk mengimpor data lama:
ALTER TABLE example_table IMPORT TABLESPACE;
Ini mengimpor data dari .idb file dan akan memulihkan data.