Saya cuba memulihkan pangkalan data dalam PMA tetapi hanya boleh mengakses fail frm dan ibd - bukan fail ib_log yang saya faham anda perlukan.
Saya tahu saya mungkin tidak dapat memulihkan data pangkalan data, tetapi adakah mungkin untuk memulihkan struktur jadual daripada fail frm?
InnoDB memerlukan fail ib_log untuk pemulihan data, tetapi ia juga memerlukan fail ibdata1, yang mengandungi kamus data dan kadangkala data belum selesai untuk jadual.
Kamus data ialah sistem berulang yang merekodkan struktur jadual dan memadankan ID jadual dengan fail .ibd fizikal yang mengandungi data jadual.
Anda tidak boleh mengalihkan fail .ibd tanpa kamus data InnoDB dan kamus data mesti sepadan dengan ID jadual yang terdapat dalam fail .ibd. Anda bolehmenyambung semula fail .ibd dan memulihkan data, tetapi prosesnya bukan untuk mereka yang lemah hati. Sila rujuk http://www.chriscalender.com/recover jadual innodb daripada fail ibd sahaja/
Anda boleh memulihkan struktur dengan beberapa helah fail menggunakan fail .frm, tetapi anda tidak boleh menciptanya sebagai jadual InnoDB pada mulanya. Berikut ialah blog yang menerangkan cara memulihkan fail .frm ke jadual MyISAM: http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/" percona.com/blog/2008/12/17/recovering-create- table-statement-from-frm-file/
Anda tidak akan dapat menggunakan PMA untuk ini. Anda memerlukan akses superuser kepada direktori data pada pelayan.
Saya memulihkan jadual daripada
.frm
和.idb
fail sahaja.Dapatkan pertanyaan SQL yang digunakan untuk mencipta jadual
Jika anda sudah mengetahui skema jadual, anda boleh melangkau langkah ini.
Mula-mula, pasang utiliti MySQL. Anda kemudiannya boleh menggunakan arahan
mysqlfrm
dalam Command Prompt (cmd).Kedua, gunakan arahan
mysqlfrm
命令从.frm
untuk mendapatkan pertanyaan SQL daripada fail.frm
:Anda kemudiannya boleh mendapatkan pertanyaan SQL untuk mencipta jadual berstruktur yang sama. Seperti ini:
Buat jadual
Buat jadual menggunakan pertanyaan SQL di atas.
Jika data lama masih wujud, anda mungkin perlu memadam pangkalan data dan jadual yang sepadan terlebih dahulu. Pastikan anda mempunyai sandaran fail data anda.
Pulihkan data
Jalankan pertanyaan ini untuk memadam data jadual baharu:
Ini akan memadamkan
.frm
文件和(新的、空的).idb
文件之间的连接。另外,删除文件夹中的.idb
fail baharu.Kemudian, letakkan
.idb
fail lama ke dalam folder baharu, contohnya:Pastikan
.ibd
文件可以被mysql
用户读取,例如通过在文件夹中运行 chown -R mysql:mysql *.ibd.Jalankan pertanyaan ini untuk mengimport data lama:
Ini akan mengimport data daripada fail
.idb
dan akan memulihkan data.