آموزش وردپرس | بلاگ وب‌داده

تعمیر و بازسازی دیتابیس خراب وردپرس

وقتی سایت شما به‌جای صفحه اصلی، پیام خطای دیتابیس نشان می‌دهد یا بخشی از مطالب ناپدید می‌شود، معمولاً پای یک جدول خراب در میان است. در این راهنما، گام‌به‌گام یاد می‌گیرید چطور خودتان دیتابیس را تعمیر و بازسازی کنید.
تعمیر دیتابیس خراب وردپرس یعنی شناسایی و اصلاح جدول‌های آسیب‌دیده در پایگاه‌داده سایت، تا محتوا و تنظیماتی که ناقص یا از دسترس خارج شده‌اند دوباره سالم شوند. در ادامه چهار روش مطمئن را از ساده به فنی‌تر می‌بینید: ابزار داخلی خود وردپرس، تب Repair در phpMyAdmin، دستور WP-CLI و ابزار mysqlcheck. همچنین یاد می‌گیرید علائم خرابی را زودتر تشخیص دهید و پیش از هر کاری بکاپ بگیرید تا اوضاع بدتر نشود.
  • مهم‌ترین قدم اول: پیش از هر تعمیری، از فایل‌ها و دیتابیس بکاپ کامل بگیرید.
  • ساده‌ترین روش: ابزار داخلی وردپرس با فعال‌کردن یک خط در 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» را بزنید. بعد از پایان کار، همان خط را حتماً حذف کنید. جزئیات و روش‌های جایگزین را در ادامه می‌آوریم.
حتماً اگر این مقاله را باز کرده‌اید، یا با پیام «Error establishing a database connection» روبه‌رو شده‌اید یا حس می‌کنید بخشی از سایتتان درست کار نمی‌کند. خبر خوب این است که در بیشتر موارد، خرابی دیتابیس قابل‌ترمیم است و لازم نیست برنامه‌نویس باشید؛ ما هر روش را ساده و مرحله‌به‌مرحله توضیح می‌دهیم و جایی که به کد نیاز است، قطعه آماده می‌گذاریم.

تعمیر دیتابیس خراب وردپرس چیست و چه زمانی لازم می‌شود؟

همه محتوای سایت وردپرسی شما — نوشته‌ها، برگه‌ها، دیدگاه‌ها، کاربران و تنظیمات — نه در فایل‌ها، بلکه در یک پایگاه‌داده (Database) از نوع MySQL یا MariaDB نگهداری می‌شود. این پایگاه‌داده از چند «جدول» تشکیل شده که هرکدام بخشی از اطلاعات را در خود دارند. گاهی به دلایل مختلف، یک یا چند جدول «خراب» (Corrupted) می‌شوند؛ یعنی ساختار داخلی یا شاخص‌های (Index) آن‌ها به‌هم می‌ریزد و وردپرس دیگر نمی‌تواند داده‌ها را درست بخواند یا بنویسد.
در این حالت، تعمیر دیتابیس یعنی اجرای فرایندی که این جدول‌های آسیب‌دیده را بررسی و تا حد ممکن اصلاح می‌کند و «بازسازی» یعنی مرتب‌کردن دوباره فضای جدول و شاخص‌ها تا سرعت و سلامت به سایت برگردد. نکته مهم این است که تعمیر، جایگزین بکاپ نیست: اگر داده‌ای واقعاً از بین رفته باشد، تعمیر آن را برنمی‌گرداند و فقط ساختار جدول را سالم می‌کند.

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

دیتابیس را مثل یک کتابخانه بزرگ تصور کنید و هر جدول را یک قفسه. «فهرست» هر قفسه همان Index است. وقتی این فهرست به‌هم بریزد، کتاب‌ها سرِ جایشان هستند اما کتابدار نمی‌تواند آن‌ها را پیدا کند. تعمیر دیتابیس یعنی مرتب‌کردن دوباره همین فهرست‌ها تا کتابدار (وردپرس) بتواند دوباره کتاب درست را بیاورد.
نمای پایگاه‌داده وردپرس و مفهوم تعمیر دیتابیس خراب وردپرس هنگام آسیب‌دیدن جدول‌ها

چرا دیتابیس وردپرس خراب می‌شود و چطور بفهمیم؟

قبل از تعمیر، خوب است بدانید چه چیزی باعث خرابی می‌شود و با چه نشانه‌هایی خودش را نشان می‌دهد. شناخت این‌ها کمک می‌کند زودتر واکنش نشان دهید و از روش درست استفاده کنید. رایج‌ترین علت‌ها عبارت‌اند از:

قطع ناگهانی یا کمبود منابع

خاموش‌شدن ناگهانی سرور، پرشدن فضای دیسک یا اتمام حافظه هنگام نوشتن روی جدول، می‌تواند یک تراکنش را نیمه‌کاره رها و جدول را خراب کند.

افزونه یا قالب معیوب

به‌روزرسانی ناموفق، افزونه‌ای که کوئری‌های سنگین و نادرست اجرا می‌کند، یا تداخل دو افزونه، از دلایل پرتکرار آسیب به جدول‌هاست.

مشکل سخت‌افزاری یا میزبانی

خطای دیسک، مشکل در سرویس MySQL روی هاست، یا ری‌استارت‌های مکرر سرور می‌تواند به فایل‌های جدول آسیب برساند.

انتقال یا ایمپورت ناقص

جابه‌جایی سایت بین هاست‌ها و ایمپورت ناتمام فایل SQL (مثلاً به‌خاطر محدودیت حجم)، اغلب جدول‌های ناقص و خراب باقی می‌گذارد.

علائمی که خبر از خرابی می‌دهند

اگر با پیام «Error establishing a database connection»، جمله «One or more database tables are unavailable»، صفحه سفید، ناپدیدشدن ناگهانی بخشی از پست‌ها یا تنظیمات، یا کندی شدید و خطای «Table is marked as crashed» روبه‌رو شده‌اید، احتمال خرابی دیتابیس بالاست. البته توجه کنید خطای اتصال دیتابیس همیشه از خرابی جدول نیست؛ گاهی به اطلاعات ورود اشتباه در wp-config.php برمی‌گردد.
اگر مطمئن نیستید مشکل از خرابی جدول است یا از تنظیمات اتصال، پیشنهاد می‌کنیم ابتدا راهنمای رفع خطای عدم اتصال به دیتابیس را ببینید و بعد سراغ تعمیر جدول‌ها بیایید.

۴ روش تعمیر و بازسازی دیتابیس وردپرس (گام‌به‌گام)

پیش از شروع: حتماً بکاپ بگیرید

تعمیر دیتابیس در بیشتر موارد ایمن است، اما هر عملیاتی روی پایگاه‌داده ریسک دارد. پیش از هر کاری از فایل‌ها و دیتابیس بکاپ کامل بگیرید تا اگر چیزی طبق انتظار پیش نرفت، سریع به عقب برگردید. برای این کار می‌توانید از بکاپ رایگان و اسنپ‌شات فوری در هاست سی‌پنل کمک بگیرید.

روش اول: ابزار داخلی تعمیر خود وردپرس (توصیه‌شده)

وردپرس یک ابزار تعمیر داخلی دارد که به‌صورت پیش‌فرض غیرفعال است و مزیت بزرگش این است که هم جدول‌های MyISAM و هم InnoDB را پوشش می‌دهد. برای فعال‌کردنش کافی است یک خط به فایل wp-config.php (در پوشه ریشه سایت، قابل‌دسترسی از مدیر فایل هاست یا FTP) اضافه کنید:
<?php
// این خط را دقیقاً بالای عبارت /* That's all, stop editing! */ در wp-config.php قرار دهید
define( 'WP_ALLOW_REPAIR', true );
// بعد از پایان کار حتماً این خط را حذف کنید (صفحه تعمیر رمز ندارد)
سپس آدرس https://سایت‌شما.com/wp-admin/maint/repair.php را در مرورگر باز کنید. دو گزینه می‌بینید: «Repair Database» که فقط تعمیر می‌کند و «Repair and Optimize Database» که بعد از تعمیر، بهینه‌سازی هم انجام می‌دهد (کمی کندتر است ولی کامل‌تر). گزینه دوم را بزنید و منتظر بمانید تا فهرست جدول‌ها و نتیجه تعمیر نمایش داده شود.

این نکته امنیتی را جدی بگیرید

صفحه repair.php برای اینکه هنگام از دسترس خارج‌شدن پیشخوان هم کار کند، عمداً نیازی به ورود و رمز ندارد؛ یعنی تا وقتی آن خط در wp-config.php باشد، هر کسی می‌تواند به این صفحه دسترسی داشته باشد. به همین دلیل، بلافاصله بعد از پایان کار، خط WP_ALLOW_REPAIR را از wp-config.php حذف کنید.

روش دوم: تعمیر از طریق phpMyAdmin

اگر به پیشخوان وردپرس دسترسی ندارید اما به کنترل‌پنل هاست بله، phpMyAdmin راه گرافیکی خوبی است. از کنترل‌پنل وارد phpMyAdmin شوید، از ستون سمت چپ دیتابیس سایت را انتخاب کنید تا فهرست جدول‌ها بیاید، پایین صفحه گزینه Check All را بزنید و از منوی «With selected» گزینه Repair table را انتخاب کنید. اگر بخواهید فقط چند جدول مشخص را از تب SQL تعمیر کنید، می‌توانید این دستور را اجرا کنید:
-- تعمیر جدول‌های مشخص از تب SQL در phpMyAdmin (فقط روی موتور MyISAM کار می‌کند)
REPAIR TABLE wp_posts, wp_options, wp_postmeta;

محدودیت مهم phpMyAdmin

گزینه Repair در phpMyAdmin و دستور REPAIR TABLE فقط روی موتورهای MyISAM (و ARCHIVE/CSV) کار می‌کند. اگر جدول‌های شما InnoDB باشند — که در وردپرس‌های امروزی پیش‌فرض است — با خطای «The storage engine for the table doesn’t support repair» روبه‌رو می‌شوید. در این حالت از روش اول (ابزار داخلی وردپرس) یا روش سوم و چهارم استفاده کنید.

روش سوم: دستور WP-CLI

اگر روی سرور مجازی یا هاست خود به خط فرمان و ابزار WP-CLI دسترسی دارید، سریع‌ترین راه همین است. طبق مستندات رسمی وردپرس، دستور wp db repair در پشت‌صحنه همان ابزار mysqlcheck را با اطلاعات اتصال داخل wp-config.php اجرا می‌کند. این سه دستور را به‌ترتیب اجرا کنید:
# بررسی سلامت جدول‌های دیتابیس
wp db check

# تعمیر جدول‌های خراب (هم MyISAM و هم InnoDB)
wp db repair

# بهینه‌سازی و دفرگ دیتابیس بعد از تعمیر
wp db optimize
دستور wp db check ابتدا وضعیت جدول‌ها را گزارش می‌دهد، wp db repair جدول‌های خراب را تعمیر می‌کند و wp db optimize در پایان دیتابیس را بهینه و فشرده می‌کند تا فضای اضافی آزاد و سرعت کوئری‌ها بهتر شود.

روش چهارم: mysqlcheck از طریق SSH

اگر WP-CLI نصب نیست اما به SSH دسترسی دارید، می‌توانید مستقیم از ابزار mysqlcheck استفاده کنید. این ابزار بخشی از خود MySQL/MariaDB است و امکان بررسی و تعمیر هم‌زمان همه جدول‌های یک دیتابیس را می‌دهد:
# تعمیر همه جدول‌های یک دیتابیس با mysqlcheck از طریق SSH
# my_wp_db و db_user را با نام دیتابیس و کاربر خودتان جایگزین کنید
mysqlcheck --repair --databases my_wp_db -u db_user -p
اجرای دستور تعمیر جدول‌های دیتابیس وردپرس در محیط خط فرمان

اگر هیچ روشی جواب نداد

گاهی خرابی آن‌قدر سنگین است که تعمیر خودکار موفق نمی‌شود یا جدول اصلاً باز نمی‌شود. در این حالت، مطمئن‌ترین کار بازگردانی از یک بکاپ سالم اخیر است. اگر بکاپ ندارید، می‌توانید با تیم پشتیبانی هاست تماس بگیرید؛ در بسیاری از هاست‌ها نسخه‌های پشتیبان دوره‌ای نگهداری می‌شود که می‌تواند سایت شما را نجات دهد.

جدول مقایسه چهار روش تعمیر دیتابیس

این جدول کمک می‌کند بر اساس دسترسی و سطح فنی خودتان، روش مناسب را انتخاب کنید:
روشنیاز به دسترسیپشتیبانی InnoDBسطح سختی
ابزار داخلی وردپرسویرایش wp-config.phpبله (هر دو موتور)آسان
phpMyAdminکنترل‌پنل هاستخیر (فقط MyISAM)آسان
WP-CLI (wp db repair)خط فرمان + WP-CLIبلهمتوسط (فنی)
mysqlcheckدسترسی SSHمحدود (بهتر برای MyISAM)متوسط (فنی)

از کجا شروع کنم؟

اگر تازه‌کارید، از روش اول (ابزار داخلی وردپرس) شروع کنید؛ کم‌دردسر است و هر دو موتور را پوشش می‌دهد. اگر به پیشخوان دسترسی ندارید، سراغ phpMyAdmin بروید و اگر جدول‌ها InnoDB بودند، به روش اول یا WP-CLI برگردید. روش‌های خط فرمان را وقتی انتخاب کنید که با SSH راحت هستید.

نقش میزبانی مطمئن در سلامت دیتابیس

بخش مهمی از خرابی دیتابیس، ریشه در زیرساخت میزبانی دارد: دیسک کند یا معیوب، کمبود منابع هنگام اوج ترافیک، یا نبود بکاپ منظم. یک میزبانی خوب، هم احتمال خرابی را کم می‌کند و هم بازگشت از آن را ساده. ما در وب‌داده تلاش کرده‌ایم این لایه اطمینان را برایتان فراهم کنیم:
✅ زیرساخت سرورهای نسل جدید HPE (Gen11 و Gen10) برای پایداری و کاهش خطای سخت‌افزاری.
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیک‌ترین لوکیشن.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در تعمیر دیتابیس، بازگردانی بکاپ و رفع خطاهای MySQL.
✅ مدیر فایل و کنترل‌پنل کامل به‌همراه phpMyAdmin برای اجرای همین روش‌ها.

تجربه پشتیبانی وب‌داده

در تیم پشتیبانی وب‌داده بارها پیش آمده که کاربری بعد از یک ایمپورت ناقص یا پرشدن دیسک، با خطای دیتابیس روبه‌رو شده است. راهکار ما معمولاً همین مسیر است: اول از وضعیت فعلی یک اسنپ‌شات می‌گیریم، بعد با ابزار داخلی وردپرس یا mysqlcheck جدول‌ها را تعمیر می‌کنیم و در صورت شکست، از نزدیک‌ترین بکاپ سالم بازمی‌گردانیم. همین ترتیب ساده، در بیشتر موارد سایت را در چند دقیقه برمی‌گرداند.
اگر به‌دنبال بستری پایدار برای وردپرس هستید، می‌توانید هاست سی‌پنل وب‌داده را ببینید. و اگر تازه می‌خواهید وردپرس را راه‌اندازی کنید، آموزش نصب وردپرس روی سی‌پنل نقطه شروع خوبی است.

معایب و محدودیت‌هایی که باید بدانید

صادقانه بگوییم، تعمیر دیتابیس همیشه معجزه نمی‌کند. نخست، اگر داده‌ای واقعاً پاک شده باشد، تعمیر آن را برنمی‌گرداند و فقط ساختار جدول را سالم می‌کند؛ برای بازگرداندن داده، تنها راه بکاپ است. دوم، دستور REPAIR TABLE و phpMyAdmin روی جدول‌های InnoDB کار نمی‌کنند و باید سراغ ابزار داخلی وردپرس یا روش dump & reload بروید. سوم، در خرابی‌های سنگین (مثلاً آسیب به فایل‌های داخلی InnoDB)، تعمیر خودکار ممکن است ناموفق باشد یا حتی وضعیت را بدتر کند؛ برای همین است که گرفتن بکاپ پیش از هر اقدام این‌قدر تأکید می‌شود. جمع‌بندی: تعمیر را امتحان کنید، اما همیشه یک نسخه پشتیبان سالم را به‌عنوان تور نجات کنار داشته باشید.

پرسش‌های پرتکرار درباره تعمیر دیتابیس وردپرس

جمع‌بندی و چک‌لیست تعمیر دیتابیس

دیدیم که خرابی دیتابیس وردپرس ترسناک به‌نظر می‌رسد، اما در بیشتر موارد قابل‌ترمیم است. چهار روش را مرور کردیم: ابزار داخلی خود وردپرس (ساده و پوشش‌دهنده هر دو موتور)، phpMyAdmin (گرافیکی، فقط MyISAM)، WP-CLI و mysqlcheck (برای کاربران فنی‌تر). مهم‌ترین پیام مقاله را فراموش نکنید: پیش از هر تعمیری بکاپ بگیرید و بکاپ منظم را جزو عادت‌های همیشگی سایتتان کنید؛ چون گاهی تنها راه نجات، همان نسخه پشتیبان سالم است.

چک‌لیست سریع تعمیر دیتابیس

✅ اول از همه از فایل‌ها و دیتابیس بکاپ کامل بگیرید.
✅ علائم را بررسی کنید و مطمئن شوید مشکل از خرابی جدول است، نه تنظیمات اتصال.
✅ ابتدا ابزار داخلی وردپرس را با WP_ALLOW_REPAIR امتحان کنید.
✅ اگر InnoDB نبود، phpMyAdmin هم گزینه ساده‌ای است.
✅ کاربران فنی از wp db repair یا mysqlcheck استفاده کنند.
✅ بعد از پایان، خط WP_ALLOW_REPAIR را حذف و در صورت شکست، از بکاپ بازگردانی کنید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
منابع: مستندات رسمی wp db repair در developer.wordpress.org؛ و راهنمای Rebuilding or Repairing Tables در مستندات رسمی MySQL درباره محدودیت REPAIR TABLE روی موتورهای مختلف.

وب داده
وب داده

جدید ترین مطالب آموزشی و کاربردی را در اینجا بخوانید !
ما با بهره‌گیری از دانش روز و تجربه متخصصان حوزه فناوری، مجموعه‌ای از آموزش‌های کاربردی و مقالات تخصصی را گردآوری کرده‌ایم که هر یک، پاسخی دقیق به پرسش‌های شماست. ؛ از مفاهیم پایه تا پیچیده‌ترین تکنیک‌های حرفه‌ای. اینجا، دانش با زبانی ساده اما عمیق در اختیار شما قرار می‌گیرد.

مقاله‌ها: 80
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *