امروز MySQL یکی از محبوب ترین راه حل ها در میان سیستم های مدیریت پایگاه داده کوچک و متوسط است. یکی از مزایای MySQL توانایی کار با جداول از انواع مختلف است. یکی از آنها MyISAM است. چنین جدول هایی برای ذخیره سازی داده هایی که اغلب درخواست می شوند بسیار مناسب هستند ، اما اگر در طول فرآیند اصلاح از کار بیفتند ، به راحتی آسیب می بینند. بنابراین ، اغلب موارد وجود دارد که شما نیاز به بازگرداندن جدولی از نوع MyISAM دارید.
ضروری
- - اعتبار ریشه در دستگاه هدف ؛
- - بسته نصب شده نرم افزارهای مدیریت سرور MySQL.
دستورالعمل ها
مرحله 1
جلسه ای را با اعتبار کاربر اصلی در دستگاهی که سرور MySQL عملکردی دارد و یک پایگاه داده را اجرا می کند و دارای جداول خراب است ، شروع کنید. اگر می توانید مستقیماً با رایانه هدف کار کنید ، به یک کنسول متن وارد شوید یا یک شبیه ساز ترمینال را به عنوان root اجرا کنید. اگر از راه دور SSH دسترسی دارید ، از یک برنامه مشتری مناسب برای ایجاد اتصال استفاده کنید.
گام 2
سرور پایگاه داده MySQL را روی دستگاه مورد نظر متوقف کنید. دستور mysqld service 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
جلسه خود را به پایان برسانید. دستور خروج را وارد کرده و Enter را فشار دهید.