4 روش رفع خطای Error establishing a database connection در وردپرس

 

اگر از وردپرس استفاده می کنید، احتمالا تا به حال با خطای “Error establishing a database connection” مواجه شده اید!

همانطور که در عکس زیر مشاهده می کنید، یک صفحه سفید است که صرفا متن خطا را نمایش می دهد.

 

Error establishing a database connection

 

این صفحه معمولا باعث ایجاد استرس در بین مدیران سایت می شود که احتمالا سایت با مشکل جدی مواجه شده و اطلاعات و محتوای سایت برای همیشه از دسترس رفته است.

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

 

نشانه‌های خطای اتصال به پایگاه داده

  • نمایش پیام “Error Establishing a Database Connection” هنگام بارگذاری سایت.
  • کاهش سرعت بارگذاری صفحات یا عدم دسترسی کامل به وب سایت.
  • مشاهده پیام های خطا در فایل های لاگ سرور.
  • وجود مشکلاتی در نمایش محتوای سایت یا ناپدید شدن برخی از داده ها.
  • نمایش صفحه سفید یا خطای داخلی سرور.

درک کلی و دلایل بروز خطای اتصال به پایگاه داده

خطای “اتصال به پایگاه داده برقرار نشد” یا “Error Establishing a Database Connection” یکی از مشکلات رایج در وردپرس است که مانع از دسترسی وب سایت به پایگاه داده می‌شود. این خطا معمولاً به دلیل نادرست بودن اطلاعات اتصال به پایگاه داده، قطع شدن سرور پایگاه داده، خرابی پایگاه داده، افزایش ناگهانی ترافیک یا خرابی فایل های وردپرس رخ می‌دهد.

وردپرس از دو بخش اصلی PHP و MySQL تشکیل شده است و تمامی قابلیت هایی که مشاهده می کنید به این دو بخش مرتبط و وابسته هستند.

  • PHP:

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

  • MySQL:

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

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

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

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

دلایلی که می تواند باعث بروز این خطا شود به شرح زیر است

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

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

  • فایل های آسیب دیده وردپرس:

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

  • دیتابیس آسیب دیده:

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

  • از کار افتادن MySQL سرور:

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

 

روش هایی جهت رفع خطا

به دلایل ایجاد خطا به صورت مختصر اشاره شد و در ادامه به جزئیات مربوط به هر یک از مشکلات خواهیم پرداخت.

 

بررسی اطلاعات دیتابیس

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

معمولا بعد از تغییر هاست و یا تغییر اطلاعات دیتابیس با این خطا مواجه می شوید.

برای رفع مشکل، ابتدا می بایست وارد کنترل پنل هاست خود شوید که ما در این مثال، کنترل پنل، سی پنل (cPanel) را در نظر گرفته ایم.

پس از ورود به سی پنل وارد بخش MySQL Databases شوید.

 

 

MySQL Databases

 

 

سپس از قسمت Add User To Database، نام یوزر و دیتابیس مورد استفاده توسط وردپرس را انتخاب کرده و سپس Add را می زنیم.

 

Add User To Database

 

در صفحه بعد، تمامی گزینه ها را تیک دار کرده و در انتها بر روی Make Change کلیک می کنیم.

 

Manage User Privileges

 

با این تغییرات یوزر دیتابیس را به دیتابیس متصل کرده ایم.

چنانچه رمز عبور مربوط به یوزر دیتابیس را نیز فراموش کرده اید، در همان بخش MySQL Databases می توانید از کادر زیر، روبروی یوزر مربوطه بر روی Change Password کلیک کنید.

 

Add User To Database Current Users

 

سپس بر روی Password Generator کلیک کنید.

 

Set MySQL User Password

 

در این صفحه رمز قوی را که ایجاد شده در جایی ذخیره کرده و گزینه “I have copied this password in a safe place.” را تیک دار کرده و در انتها بر روی Use Password کلیک کنید.

 

 

با این کار پسورد جدید در کادر های مربوطه به صورت خودکار وارد می شود که می بایست برای ثبت تغییرات بر روی Change Password کلیک کنید.

حال می بایست نام دیتابیس، نام کاربری دیتابیس، رمز عبور یوزر دیتابیس را در فایل کانفیگ وردپرس بروزرسانی کنیم.

جهت این مورد می بایست وارد سی پنل شده و File Manager را باز کرده و وارد پوشه public_html شوید.

 

File Manager

 

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

 

 

wp-config.php

 

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

نکته: حتما از copy/paste جهت وارد کردن اطلاعات در این بخش استفاده کنید تا اطلاعات به صورت دقیق درج شود.

 این اطلاعات معمولاً در خط‌های ابتدایی فایل قرار دارند و به شکل زیر هستند:

define('DB_NAME', 'database_name_here');
define('DB_USER', 'username_here');
define('DB_PASSWORD', 'password_here');
define('DB_HOST', 'localhost');

 

wp-config.php

 

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

 

فایل های آسیب دیده وردپرس

در بعضی از مواقع بعد از آپدیت افزونه ها، با خطا مواجه می شوید.

برای بررسی این مورد می بایست وارد مسیر زیر در فایل منیجر هاست خود شوید.

public_html/wp-content

در این مسیر یک پوشه با نام plugins موجود است که می بایست بر روی این فایل کلیک راست کرده و سپس بر روی Rename کلیک کنید و یک عدد به انتهای نام فایل اضافه کرده و در نهایت Rename File را انتخاب کنید.

 

Wordpress Plugins

 

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

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

در این جا مطمئن هستیم که اختلال از سمت یک یا چند افزونه است.

حال می بایست با ورود به پوشه Plugins، یک به یک افزونه هایی را که به آن ها مشکوک هستیم را تغییر نام دهیم تا به صورت موقت غیرفعال شوند و سپس وضعیت سایت را چک کنیم.

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

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

public_html/wp-content

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

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

 

دیتابیس آسیب دیده

در بعضی از مواقع به دلیل اختلال ایجاد شده بر روی یک افزونه و یا ترافیک زیاد بر روی دیتابیس، احتمال کرش دیتابیس (Crash Database) وجود دارد.

برای بررسی این مورد ابتدا وارد مسیر داشبورد وردپرس شوید:

yoursite.com/wp-admin

نکته: به جای yoursite.com می بایست نام دامنه خود را وارد نمایید.

اگر در این صفحه نیز مشابه صفحات دیگر با خطای “error establishing a database connection” مواجه شدید، نیاز به ادامه این تست نبوده و باید موارد بعدی را بررسی نمایید. اما اگر در این صفحه خطای متفاوتی مانند “One or more database tables are unavailable” دریافت کردید، به این معنا است که دیتابیس نیاز به تعمیر دارد.

جهت این مورد می بایست وارد سی پنل شده و پس از ورود به فایل منیجر، وارد public_html شده و فایل wp-config.php را ویرایش نمایید.

قطعه کد زیر را به انتهای فایل اضافه کرده و سپس فایل را ذخیره نمایید:

define('WP_ALLOW_REPAIR', true);

در انتهای کار می بایست مسیر زیر را در مرورگر خود اجرا نمایید:

yoursite.com/wp-admin/maint/repair.php

نکته: به جای yoursite.com می بایست نام دامنه خود را وارد نمایید.

در صورتی که این مراحل را به درستی طی کرده باشید، صفحه زیر باید مشاهده شود.

 

Wordpress Repair Database

 

که با انتخاب Repair Database، وردپرس اقدام به تعمیر دیتابیس می کند.

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

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

 

از کار افتادن MySQL سرور

در بعضی از مواقع به دلیل ترافیک بالا بر روی دیتابیس و یا اختلالی که بر روی سرور میزبانی شما رخ می دهد، باعث به اصطلاح داون(down) شدن دیتابیس سرور می شود.

در این موارد می بایست این مورد با دسترسی ادمین بررسی شود و در صورتی که هاست شما اشتراکی باشد، این دسترسی در اختیار شما نبوده و باید این مورد را با پشتیبان هاست خود در میان بگذارید.

 

راهکارهای پیشگیرانه

تهیه نسخه‌های پشتیبان منظم

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

استفاده از افزونه هایی مانند UpdraftPlus یا Solidwp می‌تواند این فرآیند را آسان تر کند.

مانیتورینگ سرور

اگر از سرور مجازی یا سرور اختصاصی استفاده میکنید ، میتوانید از ابزارهایی مانند Prometheus و Grafana استفاده کنید.

این ابزارها به شما کمک می‌کند تا مشکلات احتمالی سرور را پیش از وقوع شناسایی کنید. این ابزارها می توانند عملکرد سرور را نظارت کرده و در صورت بروز مشکلات، هشدار دهند.

بهینه سازی دوره‌ای پایگاه داده

داده های غیرضروری را حذف کرده و جداول پایگاه داده را بهینه کنید تا عملکرد سایت بهبود یابد.

افزونه هایی مانند WP-Optimize و WP-Sweep می‌توانند برای این منظور مفید باشند.

بروزرسانی مداوم

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

بروزرسانی منظم به حفظ امنیت و عملکرد بهینه سایت کمک می‌کند.

محدود کردن دسترسی‌های غیرضروری

برای جلوگیری از حملات احتمالی، دسترسی های غیرضروری به پایگاه داده و فایل‌های وردپرس را محدود کنید.

استفاده از افزونه های امنیتی مانند Wordfence یا Sucuri و تنظیمات مناسب می‌تواند از نفوذ و حملات جلوگیری کند.

 

سخن پایانی

خطای “error establishing a database connection” یکی از مشکلات رایج در وردپرس است و مواردی که جهت رفع این خطا باید بررسی شود را در این مقاله خدمت شما شرح دادیم، اما اگر با این بررسی ها همچنان مشکل پابرجا باشد، باید این مورد را با پشتیبان هاست خود در میان گذاشته و بررسی هایی را که انجام داده اید را در اختیار پشتیبان خود قرار دهید.

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

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

۴.۹/۵ - (۸ امتیاز)

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

لطفا علاوه بر متن نظر، نام و ایمیل خود را نیز وارد کنید. (ایمیل شما منتشر نخواهد شد)