اگر از علاقه مندان به دنیای اینترنت باشید و وقت خود را در گشت و گذار در آن بگذرانید، مطمئناً پیش آمده است که  این خطا را مشاهده کنید، خطای Error establishing a database connection یا خطای برقراری ارتباط در اتصال به پایگاه داده در وردپرس یکی از آن خطاهایی است که می تواند به دلایل بسیاری ایجاد شود. به عنوان فردی که به دنبال آسایش در استفاده از وردپرس است، این خطا می تواند به شدت خسته کننده باشد. به خصوص زمانی که این خطا به خودی خود بدون تغییر هیچ چیزی اتفاق می افتد. در این مقاله ما به شما نحوه رفع خطای برقرای اتصال یک پایگاه در وردپرس را با کامپایل لیستی از راه حل ها، همه را در یک مکان نشان می دهیم.

توجه: قبل از ایجاد تغییرات پایگاه داده اطمینان حاصل کنید که پشتیبان گیری دارید.

پایگاه داده در وردپرس

چرا خطای Error establishing a Database را دریافت می کنید؟

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

آیا مشکل برای ورود به مدیریت و / wp-admin / نیز وجود دارد؟

اولین کاری که باید انجام دهید این است که مطمئن شوید که همان خطا را در هر دو قسمت Front-End سایت و Back-End سایت که همان بخش مدیریت (wp-admin) است، دارید. اگر پیام خطا در هر دو صفحه یکسان باشد و پیغام “Error establishing a database connection” را نشان داد، سپس به مرحله بعدی بروید.

اگر خطای دیگری در مورد wp-admin وجود دارد، مثلا “یک یا چند جداول پایگاه داده در دسترس نیستند. پایگاه داده ممکن است لازم باشد تعمیر شود ” (“One or more database tables are unavailable. The database may need to be repaired” )، شما نیاز به تعمیر پایگاه داده خود دارید، می توانید این کار را با اضافه کردن خط زیر در فایل wp-config.php خود انجام دهید. و این خط را قبل خط ‘That’s all, stop editing! Happy blogging’ line wp-config.php. در فایل wp-config.php اضافه کنید.

define(‘WP_ALLOW_REPAIR’, true);

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

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

پایگاه داده در وردپرس

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

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

WP-Config.php احتمالا مهمترین فایل در نصب وردپرس شماست. این فایل جایی است که جزئیات وردپرس را برای اتصال پایگاه داده خود مشخص می کنید. اگر رمز عبور root و یا رمز عبور کاربر پایگاه داده را تغییر دادید، باید این فایل را نیز تغییر دهید. اولین چیزی که همیشه باید بررسی کنید این است که آیا همه چیز در فایل 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 نیست. بسته به هاست، متفاوت خواهد بود.
اما خوب با توجه به سرویسی که اکثر هاستینگ های ایرانی ارائه می کنند می توان گفت که در اکثر مواقع این مقدار Localhost است.

گاهی دیده شده است که بعضی از افراد می گویند که آنها مشکلات خود را با جایگزینی localhost با IP بر طرف کرده اند. البته این مورد بیشتر زمانی دیده شده است که وردپرس در یک محیط local server اجرا می شود. به عنوان مثال در MAMP، با تغییر مقدار DB_Host به IP ممکن است مشکل حل شود.

http://www.wpbeginner.com/how-to-install-wordpress/
define(‘DB_HOST’, ‘127.0.0.1:8889’);

IP برای خدمات میزبانی وب آنلاین متفاوت خواهد بود.
اگر همه چیز در این فایل صحیح باشد (مطمئن شوید که برای ایراداتی در نوشتن کدها وجود ندارد)، می توان گفت که مشکل از جانب سرور ارائه دهنده خدمات است.

هاست وب خود را چک کنید (MySQL Server)

اغلب شما خطا در ایجاد اتصال به پایگاه داده را زمانی خواهید دید که سایت با ترافیک بالایی روبرو می شود. اساسا سرور میزبان شما نمیتواند بار این تعداد مخاطب را اداره کند (مخصوصا زمانی که شما در هاست اشتراکی هستید). سایت شما بسیار آهسته باز می شود و برای برخی از کاربران خطا را نمایش می دهد. بنابراین در این مواقع بهتر است با ارائه دهنده هاست تلفنی یا به وسیله تیکت ارتباط برقرار کنید و از آنها بخواهید که مشکل را بررسی کنند و سرور MySQL را دوباره کنترل نمایند.
کسانی که میخواهند سرور MySQL خود را آزمایش کنند، می توانید چندین کار را انجام دهند. سایت های دیگر را در همان سرور تست کنید تا ببینید آیا مشکل دارند، اگر آنها نیز همان خطا را دریافت می کنند، قطعا در سرور خروجی شما چیزی اشتباه است و مشکلی وجود دارد.
اگر شما هیچ سایت دیگری در این هاست ندارید به cPanel خود بروید و سعی کنید به phpMyAdmin دسترسی پیدا کنید و به پایگاه داده متصل شوید. اگر می توانید اتصال برقرار کنید، پس باید اطمینان حاصل کنیم که آیا کاربر پایگاه داده دارای اجازه کافی است. یک فایل جدید به نام testconnection.php ایجاد کنید و کد زیر را در آن قرار دهید:

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

در این فایل به جای بخش های root و password نام کاربری و رمز عبور خود را وارد نمایید. اگر با موفقیت ارتباط برقرار شود، به این معنی است که کاربر شما مجوز کافی دارد و چیز دیگری دچار مشکل است. به فایل wp-config برگردید و اطمینان حاصل کنید از اینکه همه چیز درست است (باز هم مواردی که تایپ کرده اید را بررسی کنید تا نام دیتابیس،نام کاربری و رمز عبور را اشتباه وارد نکرده باشید)
اگر با رفتن به phpMyAdmin نمی توانید به پایگاه داده متصل شوید، پس مشکل مربوط به سرور شماست. این به این معنی نیست که سرور MySQL شما Down است بلکه این می تواند به این معنی باشد که کاربری که در دیتابیس ساخته اید دسترسی کافی نداشته است.
در مورد وضعیت ما، سرور خروجی ما در حال اجرا بود. تمام سایت های دیگر در سرور ها به جز Tarahshid کار می کردند. وقتی ما سعی کردیم به phpMyAdmin برسیم، با خطای زیر مواجه شدیم:

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

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

بنابراین اگر شما به خطا در هر اتصال به phpMyAdmin خود و یا از طریق تست اتصال مواجه شدید باید با میزبان خود به سرعت تماس بگیرید تا آنها را حل کند.
به این نکته توجه داشته باشید که این راه حل ها ممکن است برای شما کار نکند. حتماً پیش از استفاده از موارد این مقاله از تمامی بخش ها Backup تهیه کنید تا اگر به مشکل خوردید بتوانید به سرعت به حالت اولیه بازگردید.
در موردی خاص مشتری ما خطایی را که پایگاه داده نیاز به تعمیر دارد، دریافت می کرد. حتی پس از تعمیر پایگاه داده، خطا از بین نرفت و هم چنان وجود داشت. کارهای مختلفی را انجام دادیم و در پایان، موضوع url سایت بود. بله! Url سایت اشتباه وارد شده بود.
ما به SQL وی رفتیم و query زیر را با رفتن به phpMyAdmin اجرا کردیم:

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

اطمینان حاصل کنید که YOUR_SITE_URL را با مقدار واقعی تغییر دهید ، مثلا https://tarahshid.com
مقدارwp_options متفاوت خواهد بود اگر پیشوند پایگاه داده پیش فرض وردپرس را تغییر دهید.(به صورت پیش فرض این پیشوند WP- می باشد)
یکی از دوستان ما با این مشکل روبرو شد پیشنهاد کرد که محتوای active_plugins را در جدول wp_options حذف کرده و محتویات recently_edited را ویرایش کنید. به نظر می رسد که این روش مشکل را حل می کند.
در مواردی هم کاربران یک نسخه جدید از وردپرس را آپلود کرده اند و این خطا را برطرف کرده اند.

شما راه حل دیگری را امتحان کرده اید؟
برای آموزش های بیشتر با وبسایت ما همراه باشید.