اگر mySQL بطور ناگهانی خاموش شود، احتمالا InnoDB دچار کرش می شود و امکان تعمیر از phpmyadmin و کنسول mysql میسر نیست.
برای بازیابی دیتابیس دستورات زیر را در خط فرمان واراد کنید.
ابتدا حجم فایل log دیتابیس innodb با دستورهای زیر برسی کنید.
1 2 |
-rw-rw—- 1 mysql mysql 104857600 Oct20 17:50 ib_logfile0 -rw-rw—- 1 mysql mysql 104857600 Oct 20 17:01 ib_logfile1 |
در اینجا مقدار 104857600 نمایش داده شد و ممکن است برای شما مقادیر دیگری باشد.
فایل etc/my.cnf/ ر ا با ویرایشگر دلخواه باز کنید و دو خط زیر را به ابتدای فایل اضافه کنید. اندازه فایل log مطابق مقداری که خط فرمان به شما نشان می دهد وارد کنید.
1 2 |
innodb_force_recovery=6 innodb_log_file_size=104857600 |
mySQL با دستور زیر مجددا راه اندازی کنید.
1 |
service mysql restart |
حالا دیتابیس باید خالی کنید. برای این کار با فرمان زیر دیتابیس مورد نظر خالی کنید. بجای database_name باید نام دیتابیس مورد نظر خودتان وارد کنید.
1 |
mysqldump database_name > database_name.sql |
حالا یکبار دیگر فایل etc/my.cnf/ را با ویرایشگر خود باز کنید و دو خطی که وارد کرده بودید حذف کنید تا از مود بازیابی خارج شوید.
مجددا با دستور زیر mySQL از نو راه اندازی کنید.
1 |
service mysql restart |
حالا می توانید جدول ها از دیتابیس حذف کنید و با استفاده از فایل database_name.sql که خالی کرده بودید ریستور را انجام دهید.
ارسال پاسخ