خطا در برقراری ارتباط با پایگاه داده وردپرس یا همان error establishing a database connection یکی از خطاهای می باشد هر کسی که سایت اینترنتی دارد مشاهده کرده است. این خطا عموما زمانی رخ میدهد که اتصال بین دیتابیس و فایلهای موجود در هسته وردپرس برای کار کردن و اجرای دستورات برقرار نشده است.
آموزش رفع مشکل
وردپرس یک سیستم مدیریت محتوا بر اساس زبان برنامهنویسی php است که شامل فایلها و پوشههای مختلفی میباشد. این فایلها دستورات را به این سیستم داده و در نهایت اطلاعات محتوایی و متنی در دیتابیس ذخیره شده و از طریق آدرس دهی فایلها که در پوشه wp-content قرار دارد شروع به خواندن اطلاعات شده و در نهایت صفحه وب برای ما نمایش داده میشود.
حال هر زمان مشکلی به وجود آید که باعث قطع ارتباط بین پایگاه داده mySQL شده و اطلاعاتی که باید خوانده شوند تا صفحه وب را به ما نمایش دهند لود نشوند در این صورت با صفحهای مشابه تصویر زیر مواجه میشویم که پیغام error establishing a database connection یا خطا در برقراری ارتباط با پایگاه داده در آن نمایش داده خواهد شد.
دلایل عمدهای که باعث این مشکل میشوند عبارتند از:
- تغییر اطلاعات دیتابیس در فایل wp-config.php یا خراب شدن این فایل
- از کار افتادن پایگاه داده mySQL
- حذف شدن پایگاه داده
- تغییر در سطح دسترسی فایلها و پوشههای وردپرس
- وارد کردن اطلاعات نادرست هنگام انتقال سایت به هاست جدید یا تغییر در دیتابیس
- ایجاد مشکل در سرور سایت
- و…
1. مطمئن شوید پایگاه داده کار میکند
هاست شما که بر روی سرور قرار دارد شامل برنامههای مختلفی است که باید مدام آپدیت شوند. خود پایگاه داده mySQL یا mariaDB نیز به همین شکل است. گاهی اوقات خطا در اتصال به پایگاه داده وردپرس هنگام بهروزرسانی پایگاه داده رخ میدهد که نهایتاً ظرف چند دقیقه برطرف میشود؛ اما اگر مدت زمان بیشتری طول بکشد باید مطمئن شوید که مشکل از سمت پایگاه داده نیست.
بنابراین وارد هاست خود شده و روی گزینه File Manager کلیک کنید یا اینکه با ابزار FTP این کار را انجام داده و فایلی با نام dbtest.php را در پوشه public_html بسازید. سپس کدهای زیر را درون فایل قرار داده و ذخیره کنید.
<?php
$link = mysql_connect('localhost', 'database_username', 'database_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
به جای database_username نام دیتابیس و به جای database_password رمز دیتابیس وردپرس خود را وارد کنید. اگر این اطلاعات را فراموش کردید، میتوانید از فایل wp-config.php آنها را پیدا کنید. بعد از ذخیره فایل آدرس دامنه خود را وارد کرده و بعد از / نام فایل که dbtest.php بود را در آدرس بار مرورگر مثل https://powerword.ir/testdb.php وارد کنید. اگر پیغام Connected successfully نمایش داده شود مشکلی وجود ندارد، در غیر این صورت مشکل از سمت پایگاه داده است.
2. اطلاعات دیتابیس را بررسی کنید
با استفاده از file manager هاست یا ابزار FTP وارد پوشه public_html شده و فایل wp-config.php را باز کنید. اگر در این فایل دقت کنید کدهایی به شکل زیر وجود خواهد داشت.
// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ‘database_name_here‘);
/** MySQL database username */
define(‘DB_USER’, ‘username_here’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘password_here‘);
/** MySQL hostname */
define(‘DB_HOST’, ‘localhost‘);
همانطور که میبینید، این فایل حاوی اطلاعات زیر است.
- database_name_here: نام دیتابیس وردپرس
- username_here: نام کاربری دیتابیس وردپرس
- password_here: رمز دیتابیس وردپرس
باید بررسی کنید که اطلاعات وارد شده به جای این سه گزینه همان اطلاعاتی باشند که هنگام نصب وردپرس از آنها استفاده شده است. در صورتی که فکر میکنید این اطلاعات اشتباه هستند، میتوانید وارد بخش مدیریت دیتابیس هاست شده و اطلاعات مربوط به هر گزینه را تغییر داده و سپس فایل wp-config.php را بر اساس اطلاعات جدید آپدیت کنید.
3. سطح دسترسی فایلها را بررسی کنید
این حالت معمولا پس از ساخت سایت با بسته نصب آسان وردپرس صورت میگیرد. دلیل آن هم متفاوت بودن هاست قبلی با هاست جدید یا ایجاد تغییرات در هنگام نصب است. در این صورت باید به مسیر public_html رفته و کلیه پوشهها و فایلهای وردپرس را بررسی کنید.
سطح دسترسی برای فایلهای وردپرس معادل 644 و سطح دسترسی برای پوشههای وردپرس معادل 755 باشد. اگر اینطور نبود به کمک ابزار change permissions هاست آنها را اصلاح کنید.
4. در صورت تغییر دامنه اطلاعات را بررسی کنید
اگر دامنه وردپرس خود را تغییر دادهاید، ممکن است به دلیل اشتباهی این کار به درستی انجام نگرفته باشد. برای این کار کافی است فایل wp-config.php را باز کرده و کدهای زیر را درون آن قرار داده و ذخیره کنید.
define('WP_HOME','http://your-site.com');
define('WP_SITEURL','http://your-site.com');
به جای your-site.com آدرس دامنه خود را وارد کنید. همچنین در صورتی که از SSL آستفاده میکنید پروتکل را به //:https اصلاح کنید. اگر مشکل همچنان پابرجا بود وارد پوشه wp-includes وردپرس شده و فایل functions.php این پوشه را باز کنید. اگر دو خط زیر در فایل وجود داشت، آدرس را اصلاح کنید در صورتی هم که وجود نداشت اضافه کرده و فایل را ذخیره کنید.
update_option( 'siteurl', 'http://your-site.com' );
update_option( 'home', 'http://your-site.com' );
توجه داشته باشید که بعد از انجام این دو کار اگر مشکل برطرف شد یا همچنان باقی ماند، کدهای اضافی را حذف کنید.
5. پایگاه داده را تعمیر کنید
برای این منظور کد زیر را به فایل wp-config.php موجود در public_html اضافه کنید.
define( 'WP_ALLOW_REPAIR', true );
سپس آدرس سایت خود را به صورت زیر باز کنید.
https://powerword.ir/wp-admin/maint/repair.php
دقت کنید که به جای دامنه powerword.ir نام دامنه خود را وارد کنید. در این صورت صفحهای مشابه تصویر زیر نمایش داده میشود که میتوانید با کلیک روی دکمه تعمیر پایگاه داده به کمک خود وردپرس دیتابیس را تعمیر کنید تا مشکل برطرف شود.
6. کمک از پشتیبانی هاست
اگر به کمک روشهای معرفی شده موفق به برطرف کردن این خطا نشدید راه حل نهایی این است که از پشتیبانی هاست کمک بگیرید.