ปัญหา
ปัญหา database Innodb error ไม่สามารถเรียกได้
หรือขึ้น error ไม่สามารถเรียกได้
ทางแก้ปัญหา
ให้ทำการตรวจสอบได้จาก mysql error log เมื่อตรวจพบว่าเป็นปัญหาที่ Innodb เราจะต้องทำการ export Database ออกมาก่อน แล้วทำการ dump database กลับเข้าไปใหม่โดย
1. ให้ทำการ เพิ่มค่า innodb_force_recovery = 6 ในไฟล์ /etc/my.cnf
หมายเหตุ : การกำหนดค่า innodb_force_recovery นี้ มีความเสี่ยงที่จะทำให้ข้อมูลสูญหายได้ โดยจะมีค่าตั้งแต่ 1-6 เราควรกำหนดให้เหมาะสม
2. จากนั้นให้ทำการ restart service mysql
3. ให้ทำการ export all database โดยใช้คำสั่ง
Export เพียง 1 Database : mysqldump -u root -p databases > database.sql
Export database all : mysqldump -u root -p --all-databases > alldb.sql
ถ้า export database ออกมาไม่ได้อาจจะติดที่ tables databases lock ให้ใช้คำสั่ง
Export เพียง 1 Database : mysqldump -u root -p database --skip-lock-tables > alldb.sql
Export database all : mysqldump -u root -p --all-databases --skip-lock-tables > alldb.sql
4. จากนั้นให้ทำการ ลบค่า innodb_force_recovery = 6 ในไฟล์ /etc/my.cnf
5. จากนั้นให้ทำการ restart service mysql
6. ทำการ import mysql database ที่ทำการ export กลับเข้าไปโดยใช้คำสั่ง
Import เพียง 1 Database : mysql -u root -p database < database.sql
Import database all : mysql -u root -p < alldb.sql
สาเหตุของปัญหา
ในการใช้งาน MySQL โดยทั่วไปนั้น มีโอกาสที่จะพบปัญหา database เสียหาย เช่นกรณีไฟดับ Harddisk Drive เสีย หรือระบบหยุดทำงานแบบผิดปกติโดยไม่ทราบสาเหตุ