1- Mysql را کاملا stop نمایید.
service mysqld stop
pkill mysql
2- تمام داده های مسیر /var/lib/mysql را در یک جای امن کپی نمایید.
copy /var/lib/mysql/* <safe_place>
3- خط زیر را به فایل /etc/my.cnf اضافه کنید.
Innodb_force_recovery=[1,6]
توجه:می توانید مقادیر 1 تا 6 را قرار دهید اما اگر مقدار بالا را 5 و یا 6 قرار دهید، جداول حالت read only پیدا میکنند.
4- سرویس MySql را start کنید. (در حالت recovery mode فعال می شود)
service mysqld start
5- از تمامی دیتابیس ها بکاپ تهیه کنید. (می توانید جداگانه و یا کلی بکاپ تهیه نمایید.)
One by one:
mysqldump -u da_admin -p <database_name> > <database_name.sql>
Whole databases:
mysqldump -u da_admin -p --all-databases > adddbs.sql
6- با استفاده از دستور زیر می توانید جداولی که crash کرده اند را پیدا کنید.
mysqlcheck --all-databases -u da_admin -p
(corrupted tables does not get OK value)
7- از جداولی که crash کرده اند بکاپ تهیه نمایید:
mysqldump -u da_admin -p <database_name> <table_name> > tablename.sql
8- جداولی را که crash کرده اند از داخل MySql پاک کنید:
mysql>drop table <table_name>;
9- MySql را متوقف کنید.
service mysqld stop
10- خط زیر را در /etc/my.cnf ویرایش نمایید:
Innodb_force_recovery=0
11- MySql را استارت کنید.(در حالت معمولی فعال می شود.)
12- جداولی را که crash کرده بودند را بازگردانی کنید.
mysql -u da_admin -p <database_name> < table_name.sql