
به اشتراک بگذارید

به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
تعمیر و بازسازی دیتابیس خراب وردپرس
wp db repair و mysqlcheck برای کسانی که به خط فرمان دسترسی دارند.define( 'WP_ALLOW_REPAIR', true ); را در فایل wp-config.php اضافه کنید، سپس آدرس سایتشما.com/wp-admin/maint/repair.php را باز کنید و «Repair and Optimize Database» را بزنید. بعد از پایان کار، همان خط را حتماً حذف کنید. جزئیات و روشهای جایگزین را در ادامه میآوریم.
wp-config.php (در پوشه ریشه سایت، قابلدسترسی از مدیر فایل هاست یا FTP) اضافه کنید:https://سایتشما.com/wp-admin/maint/repair.php را در مرورگر باز کنید. دو گزینه میبینید: «Repair Database» که فقط تعمیر میکند و «Repair and Optimize Database» که بعد از تعمیر، بهینهسازی هم انجام میدهد (کمی کندتر است ولی کاملتر). گزینه دوم را بزنید و منتظر بمانید تا فهرست جدولها و نتیجه تعمیر نمایش داده شود.WP_ALLOW_REPAIR را از wp-config.php حذف کنید.Check All را بزنید و از منوی «With selected» گزینه Repair table را انتخاب کنید. اگر بخواهید فقط چند جدول مشخص را از تب SQL تعمیر کنید، میتوانید این دستور را اجرا کنید:wp db repair در پشتصحنه همان ابزار mysqlcheck را با اطلاعات اتصال داخل wp-config.php اجرا میکند. این سه دستور را بهترتیب اجرا کنید:wp db check ابتدا وضعیت جدولها را گزارش میدهد، wp db repair جدولهای خراب را تعمیر میکند و wp db optimize در پایان دیتابیس را بهینه و فشرده میکند تا فضای اضافی آزاد و سرعت کوئریها بهتر شود.mysqlcheck استفاده کنید. این ابزار بخشی از خود MySQL/MariaDB است و امکان بررسی و تعمیر همزمان همه جدولهای یک دیتابیس را میدهد:
| روش | نیاز به دسترسی | پشتیبانی InnoDB | سطح سختی |
|---|---|---|---|
| ابزار داخلی وردپرس | ویرایش wp-config.php | بله (هر دو موتور) | آسان |
| phpMyAdmin | کنترلپنل هاست | خیر (فقط MyISAM) | آسان |
| WP-CLI (wp db repair) | خط فرمان + WP-CLI | بله | متوسط (فنی) |
| mysqlcheck | دسترسی SSH | محدود (بهتر برای MyISAM) | متوسط (فنی) |
در حالت عادی خیر؛ فرایند تعمیر تلاش میکند ساختار جدول را سالم کند، نه اینکه محتوا را پاک کند. با این حال چون هر عملیاتی روی دیتابیس ریسک کوچکی دارد، همیشه پیش از تعمیر یک بکاپ کامل بگیرید تا در بدترین حالت بتوانید به عقب برگردید.
نه لزوماً. این خطا میتواند از اطلاعات اشتباه اتصال در wp-config.php (نام دیتابیس، کاربر یا رمز)، از دسترس خارجبودن سرویس MySQL روی هاست، یا فشار زیاد روی سرور باشد. خرابی جدول فقط یکی از علتهاست. بهتر است ابتدا اطلاعات اتصال و وضعیت سرویس دیتابیس را بررسی کنید.
گزینه اول فقط جدولهای خراب را تعمیر میکند و سریعتر است. گزینه دوم بعد از تعمیر، بهینهسازی هم انجام میدهد؛ یعنی فضای اضافی جدولها را آزاد و شاخصها را مرتب میکند. اگر عجله ندارید، گزینه دوم انتخاب کاملتری است.
چون گزینه Repair در phpMyAdmin فقط روی موتور MyISAM کار میکند و جدولهای InnoDB را پشتیبانی نمیکند. وردپرسهای امروزی معمولاً InnoDB هستند. در این حالت از ابزار داخلی وردپرس (WP_ALLOW_REPAIR) یا WP-CLI استفاده کنید که هر دو موتور را پوشش میدهند.
بله، حتماً. صفحه repair.php برای دسترسی نیاز به ورود ندارد، پس تا وقتی آن خط در wp-config.php باشد یک ریسک امنیتی است. بهمحض اتمام کار، خط define مربوط به WP_ALLOW_REPAIR را حذف و فایل را ذخیره کنید.
برای روشهای اصلی به دستکم یکی از اینها نیاز دارید: دسترسی به فایل wp-config.php (مدیر فایل یا FTP)، کنترلپنل هاست برای phpMyAdmin، یا خط فرمان. اگر به هیچکدام دسترسی ندارید، باید از تیم پشتیبانی هاست کمک بگیرید تا این کار را برایتان انجام دهند.
بله، افزونههایی مثل WP-Optimize امکان بهینهسازی و پاکسازی دیتابیس را از داخل پیشخوان میدهند و برای نگهداری دورهای مفیدند. اما برای تعمیر جدولِ کاملاً خراب، ابزار داخلی وردپرس یا روشهای خط فرمان مطمئنتر و مستقیمترند.
برای بیشتر سایتها یک بهینهسازی ماهانه کافی است تا جدولها سبک بمانند و کوئریها سریع اجرا شوند. سایتهای پرترافیک یا فروشگاهی که دائم داده مینویسند، ممکن است به بازه کوتاهتری نیاز داشته باشند. مهمتر از بهینهسازی، داشتن بکاپ منظم و خودکار است.
اگر کندی بهخاطر جدولهای خراب یا شلوغ بوده باشد، تعمیر و بهویژه بهینهسازی میتواند کمک کند. اما اگر ریشه کندی جای دیگری باشد (منابع کم سرور، افزونه سنگین یا نبود کش)، تعمیر دیتابیس بهتنهایی معجزه نمیکند و باید آن عاملها را هم بررسی کنید.