رفع خطای Error Establishing a Database Connection در وردپرس (سرور و لوکال هاست)



خطای “Error Establishing a Database Connection” (خطا در برقراری ارتباط با پایگاه داده وردپرس) یکی از رایج‌ترین و در عین حال نگران‌کننده‌ترین خطاهایی است که کاربران وردپرس با آن روبرو می‌شوند. این خطا به این معنی است که سایت شما نتوانسته به دیتابیس متصل شود و در نتیجه، به طور کامل از دسترس خارج می‌شود. این مشکل error establishing a database connection می‌تواند هم روی سرورهای آنلاین و هم در محیط‌های توسعه محلی مانند لوکال هاست یا XAMPP رخ دهد.

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

 

قدم اول: بررسی اطلاعات اتصال به دیتابیس در فایل wp-config.php

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

  1. از طریق فایل منیجر هاست یا FTP، به ریشه سایت وردپرسی خود بروید و فایل wp-config.php را برای ویرایش باز کنید.
  2. مطمئن شوید که مقادیر زیر با اطلاعات دیتابیسی که در هاست خود ایجاد کرده‌اید، دقیقا مطابقت دارد:
    • DB_NAME: نام دیتابیس شما
    • DB_USER: نام کاربری دیتابیس
    • DB_PASSWORD: رمز عبور دیتابیس
    • DB_HOST: میزبان دیتابیس (در اکثر موارد localhost است).
    define('DB_NAME', 'database_name_here');
    define('DB_USER', 'username_here');
    define('DB_PASSWORD', 'password_here');
    define('DB_HOST', 'localhost');

 

قدم دوم: بررسی وضعیت سرور دیتابیس

گاهی اوقات ممکن است خود سرویس دیتابیس (MySQL یا MariaDB) روی سرور شما از کار افتاده باشد.

  • اگر از کنترل پنل (cPanel/DirectAdmin) استفاده می‌کنید: وارد پنل مدیریت هاست خود شده و به بخش “Service Status” یا “Service Monitor” بروید و از فعال بودن سرویس MySQL/MariaDB مطمئن شوید.
  • اگر به سرور دسترسی SSH دارید: با دستور زیر می‌توانید وضعیت سرویس را بررسی کنید:
    sudo systemctl status mariadb

    اگر سرویس متوقف شده بود، با دستور sudo systemctl start mariadb آن را راه‌اندازی کنید.

 

قدم سوم: تعمیر پایگاه داده وردپرس

در موارد نادر، ممکن است دیتابیس شما دچار خرابی (corruption) شده باشد. وردپرس یک ابزار داخلی برای تعمیر خودکار دیتابیس دارد.

  1. فایل wp-config.php را باز کنید و کد زیر را قبل از خط /* That's all, stop editing! */ اضافه کنید:
    define('WP_ALLOW_REPAIR', true);
  2. حالا آدرس زیر را در مرورگر خود باز کنید (نام دامنه خود را جایگزین کنید):
    http://yourdomain.com/wp-admin/maint/repair.php
  3. شما باید صفحه‌ای مشابه تصویر زیر را ببینید. با کلیک کردن بر روی دکمه Repair Database، وردپرس تلاش می‌کند جداول دیتابیس را تعمیر کند.

 

صفحه تعمیر دیتابیس وردپرس

صفحه تعمیر دیتابیس وردپرس

 

نکته بسیار مهم: پس از اتمام کار، حتما کدی که به فایل wp-config.php اضافه کرده بودید را حذف کنید، زیرا این صفحه نباید برای عموم در دسترس باشد.

 

قدم چهارم: بررسی تداخل افزونه‌ها یا قالب

یک افزونه یا قالب معیوب نیز می‌تواند باعث بروز این خطا شود. برای بررسی، از طریق فایل منیجر به مسیر /wp-content/ بروید و نام پوشه plugins را به plugins_disabled تغییر دهید. اگر سایت بالا آمد، مشکل از یکی از افزونه‌هاست.

 

عیب‌یابی خطا در محیط‌های محلی (لوکال هاست و XAMPP)

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

 

۱. مطمئن شوید سرویس دیتابیس فعال است

در نرم‌افزارهایی مانند XAMPP یا WAMP، باید از طریق کنترل پنل برنامه مطمئن شوید که سرویس‌های Apache و MySQL (MariaDB) هر دو در حال اجرا (Running) و به رنگ سبز هستند. اگر سرویس MySQL شما فعال نباشد، این خطا رخ می‌دهد.

 

۲. اطلاعات پیش‌فرض wp-config.php را بررسی کنید

در یک نصب استاندارد وردپرس روی لوکال هاست، اطلاعات دیتابیس معمولا به شکل زیر است. این مقادیر را با فایل wp-config.php خود مقایسه کنید:

define('DB_NAME', 'نام_دیتابیسی_که_ساخته‌اید');
define('DB_USER', 'root');
define('DB_PASSWORD', ''); // رمز عبور معمولا خالی است
define('DB_HOST', 'localhost');

شایع‌ترین اشتباه، قرار دادن رمز عبور برای کاربر root است، در حالی که در اکثر نصب‌های XAMPP، این کاربر به صورت پیش‌فرض رمز عبوری ندارد.