MyISAM
Untuk tabel MyISAM, mydb.mytable, Anda harus memiliki tiga file
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
Mereka harus sudah dapat diakses sebagai tabel karena setiap file berisi data yang diperlukan, metadata, dan info indeks. Secara kolektif, mereka membentuk tabel. Tidak ada mecahnisme mesin penyimpanan eksternal untuk diakses.
InnoDB
Lihatlah Representasi Pictorial dari InnoDB ini
Satu-satunya hal yang melampirkan ibdata1 ke .ibd
file adalah kamus data.
Misi Anda, jika Anda memutuskan untuk menerimanya, adalah membuat setiap tabel dan bertukar di .ibd
Sebelum Anda melakukan apa pun, buat salinan lengkap "\ bin \ mysql \ mysql5.6.12 \ data" ke yang lain
Berikut ini contohnya
Misalkan Anda memiliki database mydb
dengan tabel mytable
. Ini berarti
- Anda memiliki foldernya
\bin\mysql\mysql5.6.12\data\mydb
- Di dalam folder itu, Anda punya
Anda membutuhkan .frm
. Jika Anda melihat posting saya Bagaimana cara mengekstrak skema tabel hanya dari file .frm? , Anda dapat mengunduh utilitas MySQL yang dapat menghasilkan SQL yang diperlukan untuk membuat tabel.
Anda sekarang harus melakukan hal berikut
- Pindah
mytable.ibd
ke\bin\mysql\mysql5.6.12\data
- Jalankan SQL untuk membuat tabel InnoDB
- Login ke mysql dan jalankan
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(ini akan menghapus \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- Salin
\bin\mysql\mysql5.6.12\data\mytable.ibd
ke\bin\mysql\mysql5.6.12\data\mydb
- Login ke mysql dan jalankan
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(Ini akan mendaftar \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
ke kamus data)
Setelah ini, tabel mydb.mytable
harus dapat diakses sepenuhnya. Anda dapat menguji aksesibilitas itu hanya dengan menjalankan:
SELECT * FROM mydb.mytable LIMIT 10;
Cobalah !!!
MINUM (Pemulihan Data Menggabungkan Pengetahuan yang Diperlukan) Secara Bertanggung Jawab
information_schema.key_column_usage
(mungkin juga tabel lain) akan mengembalikan data pada yang pertamaselect
sehingga Anda harus menjalankan setidaknya satu permintaan dan menunggu beberapa detik sebelum permintaan berikutnya dapat bekerja. (mysql Ver 14.14 Distrib 5.7.19, untuk linux-glibc2.12 (x86_64) menggunakan bungkus EditLine)