آموزش رفع خطای ارتباط با دیتابیس در وردپرس
کد تخفیف در جریان devme1397 %10 تا آخر پاییز97

یکی از خطاهایی که در وردپرس می تواند شما را سردرگم سازد، خطای ارتباط با دیتابیس می باشد. زمانی که به هر نحوی، وردپرس نتواند به خوبی با دیتابیس ارتباط برقرار کند یا اطلاعات داخل آن را دریافت کند، خطای Error Establishing a Database Connection به شما نمایش خواهد داد.

Error Establishing a Database Connection in WordPress

دلایل بروز این خطا:

  1. اطلاعات دیتابیس (شامل نام، نام کاربری و رمزعبور دیتابیس) در فایل wp-config.php
  2. در دسترس نبودن سرویس MySQL در سرور شما (گاهی اوقات ممکن است از طرف هاستینگ به دلیل انجام برخی تغییرات، این سرویس موقتا غیرفعال گردد)
  3. عدم ارتباط صحیح با دیتابیس و نیاز به تعمیر آن

 

راه حل سریع:

ابتدا بررسی کنید که آیا این خطا برای پیشخوان و سایت اصلی نمایش داده می شود یا خیر؟ در صورتی که هم در پیشخوان و هم در صفحه اصلی سایت، چنین خطایی دریافت کردید، می بایست اطلاعات دیتابیس را در فایل wp-config.php بررسی کنید. و اگر تنها در صفحه اصلی سایت چنین خطایی دیدید ولی پیشخوان به راحتی باز می شود، دیتابیس دچار مشکل شده و باید آن را تعمیر کنیم.

 


پیشخوان باز می شود ولی سایت اصلی نه!

در این حالت ، وردپرس به خوبی با دیتابیس ارتباط برقرار کرده است ولی به دلیل خرابی دیتابیس، وردپرس شما توانایی دریافت اطلاعات ضروری (مطالب، برگه ها، تنظیمات و …) را ندارد. اگر در چنین حالتی قرار داشتید، سایت شما خطای Error Establishing a Database Connection خواهد داشت و در پیشخوان خطایی مانند متن زیر را مشاهده خواهید کرد:

One or more database tables are unavailable. The database may need to be repaired

به این معنا که : یک یا چند عدد از جداول دیتابیس مربوط به وردپرس در دسترس نیستند یا اینکه خراب شده اند و باید دیتابیس را تعمیر کنید.

اگر چنین خطایی دریافت کردید، کد زیر را به فایل wp-config.php وردپرس اضافه کنید:

define('WP_ALLOW_REPAIR', true);

سپس به مسیر زیر در سایت خود بروید (آدرس را در مرورگر قرار دهید و بجای site.ltd ، دامنه سایتتان را وارد کنید) :

http://site.ltd/wp-admin/maint/repair.php

با صفحه ای مانند صفحه زیر مواجه خواهید شد که باید کلید Repair را کلیک کنید و منتظر بمانید تا دیتابیس تعمیر شود:

WordPress Repair Database Tables

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

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

 


اگر خطای ارتباط با دیتابیس در تمامی صفحات وجود داشت

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

define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');

توجه کنید که مقدار DB_HOST ممکن است همیشه localhost نباشد! برخی از هاستینگ ها ممکن است چیز دیگری به شما ارائه کنند! در اینصورت اطمینان حاصل کنید که هاستینگ شما برای DB_HOST مقدار دیگری تعریف نکرده باشد.

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

روش های بررسی درستی اطلاعات دیتابیس:

  1. در اطلاعات دیتابیس در فایل wp-config.php هیچ فاصله ای قبل یا بعد از اطلاعات وجود نداشته باشد.
  2. تمامی اطلاعات به بزرگی یا کوچک بودن اطلاعات حساس هستند.
  3. گاهی اوقات رمزعبورهای ساخته شده به صورت خودکار که دارای کاراکترهای خاص هستند، (طبق تجربه مارکت) ممکن است ارتباط شما را به خوبی متصل نکنند. سعی کنید در صورت رفع نشدن مشکل، رمزعبورهایی استفاده کنید که کاراکترهای خاص در آن نباشد.

اگر با اینکار مشکل رفع نشد، سعی کنید سرویس های MySQL و PHPmyAdmin در پنل هاست خود را باز کنید. اگر خطایی مبنی بر در دسترس نبودن دیتابیس دریافت نکردید، با هاستینگ خود تماس بگیرید و مشکل را به آنها گزارش دهید.

 


ساخت فایل PHP برای بررسی درست بودن اتصال با دیتابیس

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

برای اینکار، در مسیری که wp-config.php وردپرستان وجود دارد، یک فایل به نام و فرمت testdb.php ایجاد کنید و کدهای زیر را درون آن قرار دهید:

<?php
$link = mysql_connect('localhost', 'root', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

در کد بالا، نام هاست، نام کاربری دیتابیس وردپرس (بجای root) و رمزعبور دیتابیس (بجای password) را وارد کنید و فایل را ذخیره نمایید. سپس فایل را در مرورگر توسط آدرس زیر اجرا کنید:

http://site.ltd/testdb.php

توجه: بجای site.ltd باید دامنه اصلی سایتتان را وارد کنید.

پس از اجرای فایل مشاهده کنید که آیا ارتباط با دیتابیس برقرار می شود یا خیر.

 


بررسی در دسترس بودن سرویس دیتابیس در هاست

اگر توسط آزمایش مرحله قبل، ارتباط با دیتابیس برقرار نشد، سعی کنید وارد PHPmyAdmin هاست خود شوید. اگر خطایی مانند خطای مثال زیر دریافت کردید، باید با هاستینگ خود تماس بگیرید تا Permission (سطوح دسترسی) مربوط به دیتابیس سایتتان را تعمیر نمایند.

#1045 – Access denied for user ‘foo’@’%’ (using password: YES

هنوز دیدگاهی ارسال نشده! نظر شما چیست؟

دیدگاه شما درباره این صفحه چیست؟