شما در وردپرس برتر هستید!
چگونگی رفع خطای Establishing a Database Connection (برقراری ارتباط با پایگاه داده) در وردپرس
آموزش وردپرسمقالات آموزشی

چگونگی رفع خطای Establishing a Database Connection در وردپرس

16بازدید

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

چگونگی رفع خطای Establishing a Database Connectio

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

 

توجه: این نکته را به خاطر داشته باشید که قبل از هر گونه تغییری در سایت خود، از سایت خود و دیتابیس آن بکاپ (فایل پشتیبان) تهیه کنید.

 

علت مشاهده این خطا چیست؟

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

شاید مشخصات وارده از سمت شما برای برقراری ارتباط با دیتابیس اشتباه بوده و یا تغییر کرده اند. شاید سرور به دچار اشکال فنی شده است. یا شاید دیتابیس سایت شما دچار مشکل و خرابی شده است.

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

 

آیا این مشکل برای دسترسی به پیشخوان سایت (wp-admin) نیز وجود دارد؟

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

اما اگر با خطای دیگری در صفحه پیشخوان سایت خود مواجه می شوید، برای مثال با خطای “One or more database tables are unavailable. The database may need to be repaired”، این به این معنی است دیتابیس سایت شما دچار مشکل شده و باید تعمیر شود.

برای تعمیر دیتابیس سایت خود باید کد زیر را به فایل wp-config.php سایت خود اضافه کنید. توجه داشته باشید که این کد را قبل از عبارت “That’s all, stop editing! Happy blogging” در فایل مذکور قرار دهید:

define('WP_ALLOW_REPAIR', true);

 

به محض اینکه کد مورد نظر را wp-config.php قرار داید، کافی است تنظیمات را ذخیره کنید. حالا کافی است به انتهای آدرس سایت خود عبارت زیر را اضافه کرده و آن را در نوار مرورگر وارد کنید:

/wp-admin/maint/repair.php

یعنی برای مثال آدرس زیر را در نهایت باید در نوار آدرس مرورگر خود وارد کرده و دکمه Enter را فشار دهید:

http://www.yoursite.com/wp-admin/maint/repair.php

*به جای yoursite.com در آدرس بالا، آدرس سایت خود را جایگزین کنید.

 

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

مشاهده خطا به هنگام دسترسی به repair.php

 

اما در صورتیکه کد را به درستی اضافه کرده باشید، بعد از وارد کردن آدرس مذکور، به صفحه زیر هدایت خواهید شد:

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

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

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

اگر مشکل شما از این طریق حل نشد و یا نتوانستید دیتابیس خود را تعمیر کنید، باید از یکی دیگر از راه حل های ارائه شده در این مقاله استفاده کنید.

 

بررسی فایل WP-Config.php

فایل 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');

در کد بالا، به جای database-name باید نام پایگاه داده (دیتابیس) سایت شما در فایل مذکور وجود داشته باشد و به جای database-username، نام کاربری اکانت ایجاد شده برای دسترسی به دیتابیس و به جای database-password، کلمه عبور اکانت مورد نظر.

در قسمت DB_HOST در همه موارد نیاز نیست که مقدار آن localhost باشد. بسته به هاست شما این مقدار می تواند متفاوت باشد.

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

define('DB_HOST', $_ENV{DATABASE_SERVER});

با این کد، نوع هاست دیتابیس تعیین شده، به صورت خودکار شناسایی و مورد استفاده قرار می گیرد.

 

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

برخی مواقع علت مشاهده خطای Error establishing a database connection در سایت این است که سایت شما مورد هجوم ترافیک ورودی زیادی قرار گرفته است. خیلی ساده بخواهیم بگوییم، یعنی هاست شما توانایی مدیریت این حجم از ترافیک ورود به سایت را ندارد (به خصوص اگر از هاست اشتراکی استفاده می کنید).

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

 

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

اما اگر شما سایت دیگری روی سرور مذکور ندارید، می توانید وارد کنترل پنل هاست خود شوید. سپس فایل جدیدی به نام testconnection.php ایجاد کرده و کدهای زیر را در آن قرار دهید:

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

در کد بالا، به جای password، کلمه عبور اکانت ایجاد شده برای دسترسی دیتابیس سایت خود را جایگزین کنید. حالا به انتهای آدرس سایت خود عبارت زیر را اضافه کرده و آن را در نوار مروگر وارد کنید:

/testconnection.php

در صورتیکه فایل با موفقیت بارگذاری شد و عبارت “Connected successfully” را مشاهده کردید، این بدین معنی است که حساب کاربری ایجاد شده دسترسی های لازم را دارا است و مشکل از جای دیگری است.

اما اگر فایل مورد نظر با موفقیت بارگذاری نشده و با خطای “Could not connect” مواجه شدید، باید بدانید که یا مشکل از سرور سایت شما است و یا حساب کاربری مورد نظر دسترسی های لازم برای دسترسی به دیتابیس را ندارد. جهت رفع این مشکل با پشتیبانی هاست خود در تماس بوده و از آنها بخواهید تا مشکل را رفع کنند.

 

راه حل های دیگر کاربران در مواجه با خطای Error establishing a database connection

راه حل هایی که در زیر به آنها خواهیم پرداخت ممکن است بدرد سایت شما نخورند و در صورت استفاده از آنها مسئولیت هر گونه اتفاقی به عهده خود شما است. پس بهتر است:

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

 

Deepak Mittal فردی است که یکی از مشتریانش با این خطا روبرو شده بود و دیتابیس سایت وی نیاز به تعمیر داشت. اما بعد از تعمیر دیتابیس باز هم این خطا از بین نرفت. وی راه های زیادی را برای رفع این مشکل امتحان کرد اما در نهایت متوجه شده که مشکل از آدرس سایت است. ظاهرا آدرس سایت تغییر کرده بود و همین باعث بروز این خطا شده بود.

به همین دلیل وی از کوئری زیر در phpMyAdmin استفاده کرد:

UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

در کوئری بالا، به جای YOUR_SITE_URL آدرس سایت خود را وارد کنید، برای مثال: http://www.wpbartar.com

نکته دیگری که باید در نظر داشته باشید این است که تنها وقتی از wp_options در کوئری بالا استفاده کنید که پیشوند پیش فرض برای جداول سایت خود را تغییر نداده باشید.

 

یا کاربر دیگری به نام Cutewonders اظهار داشته که با خالی کردن محتوای active_plugins در جدول wp_options و ویرایش مقادیر recently_edited توانسته است که این مشکل را رفع کنید.

با این وجود بهتر است که توضیحات کامل در این مورد را در این لینک بخوانید.

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

ارسال پاسخ