
به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
تعمیر و بازسازی دیتابیس خراب وردپرس
- مهمترین قدم اول: پیش از هر تعمیری، از فایلها و دیتابیس بکاپ کامل بگیرید.
- سادهترین روش: ابزار داخلی وردپرس با فعالکردن یک خط در wp-config.php، هم MyISAM و هم InnoDB را پوشش میدهد.
- روش گرافیکی: phpMyAdmin از طریق گزینه «Repair table»؛ اما فقط روی جدولهای MyISAM اثر دارد.
- روش حرفهای: دستورهای
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) اضافه کنید:<?php
// این خط را دقیقاً بالای عبارت /* That's all, stop editing! */ در wp-config.php قرار دهید
define( 'WP_ALLOW_REPAIR', true );
// بعد از پایان کار حتماً این خط را حذف کنید (صفحه تعمیر رمز ندارد)PHPhttps://سایتشما.com/wp-admin/maint/repair.php را در مرورگر باز کنید. دو گزینه میبینید: «Repair Database» که فقط تعمیر میکند و «Repair and Optimize Database» که بعد از تعمیر، بهینهسازی هم انجام میدهد (کمی کندتر است ولی کاملتر). گزینه دوم را بزنید و منتظر بمانید تا فهرست جدولها و نتیجه تعمیر نمایش داده شود.این نکته امنیتی را جدی بگیرید
WP_ALLOW_REPAIR را از wp-config.php حذف کنید.روش دوم: تعمیر از طریق phpMyAdmin
Check All را بزنید و از منوی «With selected» گزینه Repair table را انتخاب کنید. اگر بخواهید فقط چند جدول مشخص را از تب SQL تعمیر کنید، میتوانید این دستور را اجرا کنید:-- تعمیر جدولهای مشخص از تب SQL در phpMyAdmin (فقط روی موتور MyISAM کار میکند)
REPAIR TABLE wp_posts, wp_options, wp_postmeta;SQLمحدودیت مهم phpMyAdmin
روش سوم: دستور WP-CLI
wp db repair در پشتصحنه همان ابزار mysqlcheck را با اطلاعات اتصال داخل wp-config.php اجرا میکند. این سه دستور را بهترتیب اجرا کنید:# بررسی سلامت جدولهای دیتابیس
wp db check
# تعمیر جدولهای خراب (هم MyISAM و هم InnoDB)
wp db repair
# بهینهسازی و دفرگ دیتابیس بعد از تعمیر
wp db optimizeShellScriptwp db check ابتدا وضعیت جدولها را گزارش میدهد، wp db repair جدولهای خراب را تعمیر میکند و wp db optimize در پایان دیتابیس را بهینه و فشرده میکند تا فضای اضافی آزاد و سرعت کوئریها بهتر شود.روش چهارم: mysqlcheck از طریق SSH
mysqlcheck استفاده کنید. این ابزار بخشی از خود MySQL/MariaDB است و امکان بررسی و تعمیر همزمان همه جدولهای یک دیتابیس را میدهد:# تعمیر همه جدولهای یک دیتابیس با mysqlcheck از طریق SSH
# my_wp_db و db_user را با نام دیتابیس و کاربر خودتان جایگزین کنید
mysqlcheck --repair --databases my_wp_db -u db_user -pShellScript
اگر هیچ روشی جواب نداد
جدول مقایسه چهار روش تعمیر دیتابیس
| روش | نیاز به دسترسی | پشتیبانی InnoDB | سطح سختی |
|---|---|---|---|
| ابزار داخلی وردپرس | ویرایش wp-config.php | بله (هر دو موتور) | آسان |
| phpMyAdmin | کنترلپنل هاست | خیر (فقط MyISAM) | آسان |
| WP-CLI (wp db repair) | خط فرمان + WP-CLI | بله | متوسط (فنی) |
| mysqlcheck | دسترسی SSH | محدود (بهتر برای MyISAM) | متوسط (فنی) |
از کجا شروع کنم؟
نقش میزبانی مطمئن در سلامت دیتابیس
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در تعمیر دیتابیس، بازگردانی بکاپ و رفع خطاهای MySQL.
✅ مدیر فایل و کنترلپنل کامل بههمراه phpMyAdmin برای اجرای همین روشها.
تجربه پشتیبانی وبداده
معایب و محدودیتهایی که باید بدانید
پرسشهای پرتکرار درباره تعمیر دیتابیس وردپرس
تعمیر دیتابیس به اطلاعات سایتم آسیب میزند؟
در حالت عادی خیر؛ فرایند تعمیر تلاش میکند ساختار جدول را سالم کند، نه اینکه محتوا را پاک کند. با این حال چون هر عملیاتی روی دیتابیس ریسک کوچکی دارد، همیشه پیش از تعمیر یک بکاپ کامل بگیرید تا در بدترین حالت بتوانید به عقب برگردید.
خطای «Error establishing a database connection» یعنی حتماً دیتابیس خراب است؟
نه لزوماً. این خطا میتواند از اطلاعات اشتباه اتصال در wp-config.php (نام دیتابیس، کاربر یا رمز)، از دسترس خارجبودن سرویس MySQL روی هاست، یا فشار زیاد روی سرور باشد. خرابی جدول فقط یکی از علتهاست. بهتر است ابتدا اطلاعات اتصال و وضعیت سرویس دیتابیس را بررسی کنید.
فرق «Repair» و «Repair and Optimize» در ابزار داخلی وردپرس چیست؟
گزینه اول فقط جدولهای خراب را تعمیر میکند و سریعتر است. گزینه دوم بعد از تعمیر، بهینهسازی هم انجام میدهد؛ یعنی فضای اضافی جدولها را آزاد و شاخصها را مرتب میکند. اگر عجله ندارید، گزینه دوم انتخاب کاملتری است.
چرا phpMyAdmin میگوید جدول من قابل تعمیر نیست؟
چون گزینه Repair در phpMyAdmin فقط روی موتور MyISAM کار میکند و جدولهای InnoDB را پشتیبانی نمیکند. وردپرسهای امروزی معمولاً InnoDB هستند. در این حالت از ابزار داخلی وردپرس (WP_ALLOW_REPAIR) یا WP-CLI استفاده کنید که هر دو موتور را پوشش میدهند.
بعد از تعمیر باید خط WP_ALLOW_REPAIR را حذف کنم؟
بله، حتماً. صفحه repair.php برای دسترسی نیاز به ورود ندارد، پس تا وقتی آن خط در wp-config.php باشد یک ریسک امنیتی است. بهمحض اتمام کار، خط define مربوط به WP_ALLOW_REPAIR را حذف و فایل را ذخیره کنید.
بدون دسترسی به هاست هم میتوانم دیتابیس را تعمیر کنم؟
برای روشهای اصلی به دستکم یکی از اینها نیاز دارید: دسترسی به فایل wp-config.php (مدیر فایل یا FTP)، کنترلپنل هاست برای phpMyAdmin، یا خط فرمان. اگر به هیچکدام دسترسی ندارید، باید از تیم پشتیبانی هاست کمک بگیرید تا این کار را برایتان انجام دهند.
افزونهای برای تعمیر دیتابیس هست؟
بله، افزونههایی مثل WP-Optimize امکان بهینهسازی و پاکسازی دیتابیس را از داخل پیشخوان میدهند و برای نگهداری دورهای مفیدند. اما برای تعمیر جدولِ کاملاً خراب، ابزار داخلی وردپرس یا روشهای خط فرمان مطمئنتر و مستقیمترند.
هر چند وقت یکبار باید دیتابیس را بهینه کنم؟
برای بیشتر سایتها یک بهینهسازی ماهانه کافی است تا جدولها سبک بمانند و کوئریها سریع اجرا شوند. سایتهای پرترافیک یا فروشگاهی که دائم داده مینویسند، ممکن است به بازه کوتاهتری نیاز داشته باشند. مهمتر از بهینهسازی، داشتن بکاپ منظم و خودکار است.
تعمیر دیتابیس سرعت سایتم را بالا میبرد؟
اگر کندی بهخاطر جدولهای خراب یا شلوغ بوده باشد، تعمیر و بهویژه بهینهسازی میتواند کمک کند. اما اگر ریشه کندی جای دیگری باشد (منابع کم سرور، افزونه سنگین یا نبود کش)، تعمیر دیتابیس بهتنهایی معجزه نمیکند و باید آن عاملها را هم بررسی کنید.
جمعبندی و چکلیست تعمیر دیتابیس
چکلیست سریع تعمیر دیتابیس
✅ علائم را بررسی کنید و مطمئن شوید مشکل از خرابی جدول است، نه تنظیمات اتصال.
✅ ابتدا ابزار داخلی وردپرس را با WP_ALLOW_REPAIR امتحان کنید.
✅ اگر InnoDB نبود، phpMyAdmin هم گزینه سادهای است.
✅ کاربران فنی از wp db repair یا mysqlcheck استفاده کنند.
✅ بعد از پایان، خط WP_ALLOW_REPAIR را حذف و در صورت شکست، از بکاپ بازگردانی کنید.



