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
mysqlfrm
perintah di command prompt (cmd). -
Kedua, dapatkan kueri SQL dari
.frm
file menggunakanmysqlfrm
perintah: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.