MyISAM
สำหรับตาราง MyISAM mydb.mytable คุณควรมีสามไฟล์
\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
พวกเขาควรจะสามารถเข้าถึงได้เป็นตารางเนื่องจากแต่ละไฟล์มีข้อมูลเมตาดาต้าและดัชนีที่ต้องการ เรียกรวมกันเป็นตาราง ไม่มีกลไกหน่วยเก็บข้อมูลภายนอกที่จะเข้าถึง
InnoDB
ดูภาพการเป็นตัวแทนของ InnoDB
สิ่งเดียวที่แนบ ibdata1 กับ.ibd
ไฟล์คือพจนานุกรมข้อมูล
ภารกิจของคุณหากคุณตัดสินใจที่จะยอมรับมันคือการสร้างแต่ละตารางและสลับใน .ibd
ก่อนที่คุณจะทำอะไรให้ทำสำเนา "\ bin \ mysql \ mysql5.6.12 \ data" ทั้งหมดไว้ที่อื่น
นี่คือตัวอย่าง
สมมติว่าคุณมีฐานข้อมูลที่มีตารางmydb
mytable
ซึ่งหมายความว่า
- คุณมีโฟลเดอร์
\bin\mysql\mysql5.6.12\data\mydb
- ภายในโฟลเดอร์นั้นคุณมี
.frm
คุณจำเป็นต้องมี หากคุณดูที่โพสต์ของฉันจะแยกสคีมาตารางจากไฟล์. frm ได้อย่างไร คุณสามารถดาวน์โหลดยูทิลิตี้ MySQL ที่สามารถสร้าง SQL ที่จำเป็นในการสร้างตาราง
ตอนนี้คุณควรทำดังต่อไปนี้
- ย้าย
mytable.ibd
ไปที่\bin\mysql\mysql5.6.12\data
- เรียกใช้ SQL เพื่อสร้างตาราง InnoDB
- เข้าสู่ระบบ mysql และเรียกใช้
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(จะลบ\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- คัดลอก
\bin\mysql\mysql5.6.12\data\mytable.ibd
ลงใน\bin\mysql\mysql5.6.12\data\mydb
- ลงชื่อเข้าใช้ mysql และเรียกใช้
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(สิ่งนี้จะลงทะเบียน\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
ในพจนานุกรมข้อมูล)
หลังจากนี้ตารางmydb.mytable
ควรจะสามารถเข้าถึงได้อย่างเต็มที่ คุณสามารถทดสอบการช่วยสำหรับการเข้าถึงนั้นเพียงแค่เรียกใช้:
SELECT * FROM mydb.mytable LIMIT 10;
ให้มันลอง !!!
DRINK (การกู้คืนข้อมูลมีความรู้ที่จำเป็น) รับผิดชอบ