วันนี้ MySQL เป็นหนึ่งในโซลูชั่นที่ได้รับความนิยมมากที่สุดในบรรดาระบบจัดการฐานข้อมูลขนาดเล็กและขนาดกลาง ข้อดีอย่างหนึ่งของ MySQL คือความสามารถในการทำงานกับตารางประเภทต่างๆ หนึ่งในนั้นคือ MyISAM ตารางดังกล่าวเหมาะสำหรับการจัดเก็บข้อมูลที่ร้องขอบ่อย แต่หากล้มเหลวระหว่างกระบวนการแก้ไข ตารางดังกล่าวอาจเสียหายได้ง่าย ดังนั้นจึงมักมีบางกรณีที่คุณจำเป็นต้องกู้คืนตารางประเภท MyISAM
จำเป็น
- - ข้อมูลประจำตัวรูทบนเครื่องเป้าหมาย
- - แพ็คเกจที่ติดตั้งยูทิลิตี้การดูแลเซิร์ฟเวอร์ MySQL
คำแนะนำ
ขั้นตอนที่ 1
เริ่มเซสชันด้วยข้อมูลประจำตัวของผู้ใช้รูทบนเครื่องที่มีเซิร์ฟเวอร์ MySQL ที่ใช้งานได้ซึ่งเรียกใช้ฐานข้อมูลที่เชื่อว่ามีตารางที่เสียหาย หากคุณสามารถทำงานกับคอมพิวเตอร์เป้าหมายได้โดยตรง ให้เข้าสู่ระบบคอนโซลข้อความหรือเรียกใช้โปรแกรมจำลองเทอร์มินัลเป็นรูท หากคุณมีการเข้าถึง SSH ระยะไกล ให้ใช้โปรแกรมไคลเอ็นต์ที่เหมาะสมเพื่อทำการเชื่อมต่อ
ขั้นตอนที่ 2
หยุดเซิร์ฟเวอร์ฐานข้อมูล MySQL บนเครื่องเป้าหมาย เรียกใช้คำสั่ง service mysqld stop รอให้กระบวนการปิดระบบเสร็จสมบูรณ์ (ซึ่งจะแสดงด้วยข้อความวินิจฉัย)
ขั้นตอนที่ 3
สร้างสำเนาสำรองของไฟล์ตารางฐานข้อมูล ซึ่งจะใช้สำหรับการทำงานต่อไป ในกรณีนี้จะสะดวกที่จะใช้ตัวจัดการไฟล์ นำทางไปยังโฟลเดอร์ที่มีไฟล์ตาราง มีชื่อเหมือนกับชื่อของฐานข้อมูลและอยู่ในไดเร็กทอรี db ซึ่งอยู่ในไดเร็กทอรีรากของเซิร์ฟเวอร์ (ระบุโดยตัวแปร chroot ของไฟล์คอนฟิกูเรชัน my.cnf) คัดลอกไฟล์ทั้งหมดที่มีนามสกุล MYD และ MYI จากโฟลเดอร์ปัจจุบันไปยังไดเร็กทอรีชั่วคราว
ขั้นตอนที่ 4
ตรวจสอบตารางฐานข้อมูลอย่างน้อยหนึ่งตารางสำหรับความเสียหาย ในไดเร็กทอรีปัจจุบัน ให้รันคำสั่ง myisamchk ด้วยตัวเลือก -c (หรือไม่มีตัวเลือกเลย) สำหรับการสแกนปกติ ใช้ตัวเลือก -m สำหรับการทดสอบอย่างระมัดระวัง และตัวเลือก -e สำหรับการทดสอบอย่างระมัดระวังเป็นพิเศษ เป็นพารามิเตอร์สุดท้าย ระบุชื่อหรือมาสก์ของชื่อไฟล์ที่จะประมวลผล ตัวอย่างเช่น: myisamchk -c test_table. MYImyisamchk *. MYI
ขั้นตอนที่ 5
กู้คืนโต๊ะหรือโต๊ะที่พบความเสียหาย รันคำสั่ง myisamchk ด้วยตัวเลือก -r สำหรับการกู้คืนปกติ หรือตัวเลือก -o สำหรับการกู้คืนแบบนุ่มนวล เป็นพารามิเตอร์สุดท้าย เช่นเดียวกับในขั้นตอนก่อนหน้า ส่งตัวพรางชื่อหรือชื่อของตารางเป้าหมาย ตัวอย่างเช่น: myisamchk -o test_table. MYI
ขั้นตอนที่ 6
เริ่มเซิร์ฟเวอร์ MySQL เรียกใช้คำสั่งบริการ mysqld start
ขั้นตอนที่ 7
สิ้นสุดเซสชั่นของคุณ ป้อนคำสั่ง exit แล้วกด Enter