اگر هنگام باز کردن سایت وردپرسی با پیام Error establishing a database connection روبهرو شدهاید، وردپرس نتوانسته است به پایگاه داده متصل شود و اطلاعات موردنیاز برای نمایش سایت را دریافت کند. این مشکل ممکن است باعث از دسترس خارج شدن صفحه اصلی، پیشخوان یا تمام بخشهای سایت شود.
خطای اتصال به دیتابیس وردپرس همیشه به معنی خراب شدن اطلاعات نیست. گاهی نام کاربری یا رمز عبور پایگاه داده اشتباه است، گاهی سرویس MySQL یا MariaDB متوقف شده و در بعضی موارد محدودیت منابع سرور یا مشکل در ساختار پایگاه داده باعث بروز خطا میشود. در این مقاله از سایت افزون، روشهای بررسی و رفع مشکل را مرحلهبهمرحله توضیح میدهیم.
خطای اتصال به پایگاه داده وردپرس چیست؟
وردپرس برای ذخیره و دریافت نوشتهها، برگهها، کاربران، تنظیمات و اطلاعات بسیاری از افزونهها از پایگاه داده استفاده میکند. هنگام باز شدن سایت، وردپرس باید با استفاده از اطلاعات اتصال تعریفشده در فایل wp-config.php به پایگاه داده متصل شود.
اگر اتصال برقرار نشود، وردپرس نمیتواند اطلاعات لازم را دریافت کند و پیام Error establishing a database connection را نمایش میدهد. این پیام علت دقیق مشکل را مشخص نمیکند، بنابراین برای رفع آن باید تنظیمات اتصال، وضعیت سرویس پایگاه داده و گزارشهای خطا را بررسی کنید.
علتهای رایج خطای اتصال به پایگاه داده وردپرس
- اشتباه بودن نام پایگاه داده، نام کاربری یا رمز عبور
- تغییر میزبان پایگاه داده یا مقدار
DB_HOST - متوقف شدن سرویس MySQL یا MariaDB
- رسیدن مصرف حافظه، CPU یا فضای دیسک به محدودیت سرور
- رسیدن تعداد اتصالهای همزمان پایگاه داده به سقف مجاز
- مشکل در دسترسی کاربر پایگاه داده یا مجوزهای آن
- خرابی احتمالی جدولهای پایگاه داده
- اختلال شبکه یا مشکل ارتباط وردپرس با سرور پایگاه داده
قبل از شروع عیبیابی چه کار کنیم؟
پیش از تغییر تنظیمات یا اجرای دستورات تعمیر، چند نکته را رعایت کنید تا احتمال از دست رفتن اطلاعات کاهش پیدا کند.
- زمان شروع خطا و آخرین تغییرات سایت یا سرور را یادداشت کنید.
- اگر به پایگاه داده دسترسی دارید، پیش از تعمیر یا تغییر ساختار آن بکاپ تهیه کنید.
- اگر سایت پس از انتقال هاست یا بازیابی بکاپ دچار مشکل شده است، اطلاعات اتصال و تنظیمات محیط جدید را بررسی کنید.
- از حذف فایلهای وردپرس یا ساخت مجدد پایگاه داده بدون بررسی خودداری کنید.
- اگر سایت فروشگاهی است، از انجام اقداماتی که ممکن است سفارشها یا اطلاعات جدید را تحت تاثیر قرار دهند پرهیز کنید.
روش اول، اطلاعات اتصال در فایل wp-config.php را بررسی کنید
یکی از نخستین مواردی که باید بررسی شود، اطلاعات اتصال به پایگاه داده در فایل wp-config.php است. این فایل معمولا در پوشه اصلی نصب وردپرس قرار دارد و اطلاعات لازم برای اتصال را در خود نگه میدارد.
از طریق File Manager هاست، SFTP یا SSH فایل را باز کنید و مقادیر زیر را بررسی کنید:
define( 'DB_NAME', 'database_name' );
define( 'DB_USER', 'database_user' );
define( 'DB_PASSWORD', 'database_password' );
define( 'DB_HOST', 'localhost' );مقادیر بالا نمونه هستند و نباید بدون بررسی با مقادیر واقعی سایت جایگزین شوند. موارد زیر را با اطلاعات ارائهشده در پنل میزبانی مقایسه کنید:
- DB_NAME: نام واقعی پایگاه داده سایت
- DB_USER: نام کاربری دارای دسترسی به همان پایگاه داده
- DB_PASSWORD: رمز عبور فعلی کاربر پایگاه داده
- DB_HOST: میزبان یا آدرس سرویس پایگاه داده که شرکت میزبانی تعیین کرده است
در بعضی هاستها مقدار میزبان localhost است، اما در برخی محیطها باید از نام میزبان یا آدرس دیگری استفاده شود. مقدار صحیح را از پنل هاست یا پشتیبانی میزبانی دریافت کنید.
اگر رمز عبور یا نام کاربری را تغییر میدهید، مطمئن شوید مقدار جدید در فایل تنظیمات با اطلاعات واقعی پایگاه داده مطابقت دارد. پیش از ویرایش، از فایل بکاپ بگیرید و اطلاعات اتصال را در اختیار افراد غیرمجاز قرار ندهید.
روش دوم، وضعیت سرویس MySQL یا MariaDB را بررسی کنید
اگر اطلاعات اتصال درست است، ممکن است سرویس پایگاه داده متوقف شده باشد یا به درخواستها پاسخ ندهد. این وضعیت در سرورهای مجازی و اختصاصی قابل بررسی است. در هاست اشتراکی، معمولا باید از پشتیبانی شرکت میزبانی کمک بگیرید.
در سرور لینوکسی دارای دسترسی مدیریتی، ابتدا وضعیت سرویس را بررسی کنید. نام سرویس بسته به توزیع و نحوه نصب میتواند متفاوت باشد.
systemctl status mariadb
systemctl status mysqlممکن است فقط یکی از این سرویسها در سرور شما وجود داشته باشد. اگر سرویس فعال نیست، پیش از راهاندازی مجدد، گزارش خطا و علت توقف آن را بررسی کنید.
برای مشاهده گزارشهای اخیر میتوانید از دستور متناسب با سرویس نصبشده استفاده کنید:
journalctl -u mariadb -n 100 --no-pager
journalctl -u mysql -n 100 --no-pagerاگر گزارشها نشان میدهند سرویس به دلیل کمبود حافظه، فضای دیسک یا خطای پیکربندی متوقف شده است، ابتدا همان علت را برطرف کنید. راهاندازی مجدد بدون بررسی ممکن است مشکل را دوباره ایجاد کند یا در زمان نامناسب روی سایتهای فعال تاثیر بگذارد.
روش سوم، دسترسی کاربر به پایگاه داده را بررسی کنید
ممکن است پایگاه داده وجود داشته باشد و سرویس هم فعال باشد، اما کاربر تعریفشده در وردپرس اجازه اتصال یا دسترسی به پایگاه داده را نداشته باشد. این وضعیت گاهی پس از انتقال سایت، تغییر رمز عبور یا بازسازی حساب میزبانی رخ میدهد.
از پنل میزبانی بررسی کنید که:
- پایگاه داده موردنظر هنوز وجود دارد.
- کاربر صحیح به همان پایگاه داده اختصاص داده شده است.
- مجوزهای موردنیاز وردپرس برای کاربر تنظیم شدهاند.
- اطلاعات اتصال در
wp-config.phpبا حساب فعلی پایگاه داده مطابقت دارد.
در پنلهایی مانند DirectAdmin یا cPanel، ابزارهای مدیریت پایگاه داده امکان بررسی کاربران و مجوزها را فراهم میکنند. تغییر مجوزها را با توجه به نیاز واقعی سایت انجام دهید و از اعطای دسترسی گستردهتر از حد لازم خودداری کنید.
روش چهارم، منابع سرور و فضای دیسک را بررسی کنید
پایگاه داده برای پاسخ به درخواستها به منابعی مانند حافظه، CPU و فضای دیسک نیاز دارد. اگر منابع کافی نباشد، سرویس ممکن است کند شود، اتصالها را نپذیرد یا به طور کامل متوقف شود.
در سرور لینوکسی میتوانید وضعیت اولیه منابع را با دستورات زیر بررسی کنید:
uptime
free -h
df -h
topبه موارد زیر توجه کنید:
- پر شدن پارتیشن داده یا فایلسیستم مربوط به پایگاه داده
- کمبود حافظه و افزایش فشار روی سیستم
- بار بالای CPU و پردازشهای طولانی
- افزایش تعداد اتصالها یا درخواستهای همزمان
- اجرای همزمان بکاپ، عملیات سنگین یا وظایف زمانبندیشده
اگر فضای دیسک پر شده است، پیش از حذف فایلها مشخص کنید چه چیزی فضا را اشغال کرده است. فایلهای پایگاه داده، لاگها یا بکاپها را بدون شناخت کاربردشان حذف نکنید. در صورت مشاهده فشار منابع، لاگها و وضعیت سرویس را در همان بازه زمانی بررسی کنید.
روش پنجم، تعداد اتصالهای پایگاه داده را بررسی کنید
اگر خطا در زمان افزایش بازدید رخ میدهد یا پس از مدتی به صورت موقت برطرف میشود، ممکن است تعداد اتصالهای همزمان پایگاه داده به محدودیت رسیده باشد. درخواستهای سنگین، افزونههای غیربهینه و افزایش ترافیک میتوانند این وضعیت را تشدید کنند.
اگر دسترسی مدیریتی دارید، پس از اتصال مجاز به MySQL یا MariaDB میتوانید وضعیت اتصالها را بررسی کنید:
SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';
SHOW FULL PROCESSLIST;این دستورات تعداد اتصالهای فعلی، سقف اتصالها و فهرست پردازشهای پایگاه داده را نشان میدهند. اجرای آنها به دسترسی مناسب نیاز دارد و خروجی باید در زمان وقوع مشکل بررسی شود.
بالا بردن مقدار max_connections همیشه راهحل مناسبی نیست، زیرا هر اتصال میتواند منابع بیشتری مصرف کند. ابتدا درخواستهای طولانی، کوئریهای کند و رفتار افزونهها را بررسی کنید و سپس با توجه به حافظه و ظرفیت سرور درباره تغییر تنظیمات تصمیم بگیرید.
روش ششم، لاگهای پایگاه داده و وبسرور را بررسی کنید
وقتی علت خطا مشخص نیست، گزارشهای سرویس پایگاه داده و وبسرور میتوانند اطلاعات مهمی ارائه دهند. مسیر لاگها بسته به سیستمعامل، نوع سرویس و تنظیمات سرور متفاوت است.
در سرورهای لینوکسی، گزارش سرویس را میتوان با journalctl بررسی کرد. برای نمونه:
journalctl -u mariadb -n 100 --no-pagerاگر سرویس MySQL است، نام سرویس را متناسب با نصب خود تغییر دهید. در لاگها به پیامهایی درباره توقف سرویس، خطاهای دسترسی، کمبود حافظه، پر شدن دیسک و مشکلات فایلهای داده توجه کنید.
در هاست اشتراکی، ممکن است به لاگهای پایگاه داده دسترسی نداشته باشید. در این شرایط، زمان وقوع خطا و پیام نمایشدادهشده را به پشتیبانی ارائه کنید تا گزارشهای مربوط به همان بازه بررسی شوند.
روش هفتم، سلامت پایگاه داده را بررسی کنید
گاهی مشکل از اطلاعات اتصال یا توقف سرویس نیست و یکی از جدولهای پایگاه داده دچار خرابی شده است. با این حال، نباید صرفا با مشاهده خطای اتصال فرض کنید پایگاه داده خراب شده است. ابتدا وضعیت سرویس، اطلاعات اتصال و لاگها را بررسی کنید.
اگر شواهدی از خرابی جدولها وجود دارد، ابتدا از پایگاه داده بکاپ تهیه کنید و سپس از ابزار مدیریتی مناسب برای بررسی سلامت آن استفاده کنید. در صورت امکان، نسخه بکاپ را در محیط آزمایشی بررسی کنید تا مطمئن شوید قابل بازیابی است.
وردپرس قابلیتی برای تعمیر بعضی جدولهای پشتیبانیشده دارد، اما فعال کردن آن بدون شناخت شرایط سایت توصیه نمیشود. اگر از این قابلیت استفاده میکنید، پس از پایان کار آن را غیرفعال کنید و اجازه ندهید ابزار تعمیر به شکل دائمی در دسترس باقی بماند.
در صورت مشاهده خطاهای مربوط به فایلهای داده، خرابی جدی جدولها یا توقف غیرعادی MySQL/MariaDB، از اجرای دستورات تعمیر ناشناخته خودداری کنید. در این شرایط، متخصص پایگاه داده باید نوع موتور ذخیرهسازی، لاگها و فایل بکاپ را بررسی کند.
روش هشتم، اگر مشکل پس از انتقال سایت ایجاد شده است
اگر خطای اتصال به پایگاه داده بلافاصله پس از انتقال سایت به هاست یا سرور جدید ظاهر شده است، ابتدا تنظیمات محیط جدید را بررسی کنید. ممکن است نام پایگاه داده یا کاربر در پنل جدید تغییر کرده باشد، میزبان پایگاه داده متفاوت باشد یا اطلاعات اتصال به درستی منتقل نشده باشند.
- نام پایگاه داده و کاربر آن را در پنل جدید بررسی کنید.
- از اختصاص داشتن کاربر به پایگاه داده و تنظیم مجوزها مطمئن شوید.
- مقدار
DB_HOSTرا با تنظیمات سرویس جدید تطبیق دهید. - از کامل بودن فرایند انتقال پایگاه داده اطمینان پیدا کنید.
- در صورت استفاده از سرور پایگاه داده جداگانه، دسترسی شبکه و تنظیمات اتصال را بررسی کنید.
اگر سایت به سرور دیگری منتقل شده است، مقدار localhost لزوما میزبان صحیح نیست. مقدار درست را از تنظیمات سرویس جدید دریافت کنید و از بازنویسی کامل فایل پیکربندی بدون بررسی مقادیر موجود خودداری کنید.
اگر خطای اتصال به پایگاه داده همچنان ادامه داشت چه کنیم؟
اگر روشهای بالا مشکل را برطرف نکردند، اطلاعات زیر را جمعآوری کنید تا عیبیابی دقیقتر انجام شود:
- زمان شروع خطا و اینکه آیا دائمی است یا مقطعی
- تغییرات اخیر در هاست، سرور، رمز عبور یا فایلهای وردپرس
- وضعیت سرویس MySQL یا MariaDB
- بخش مرتبط از لاگ پایگاه داده و وبسرور
- وضعیت حافظه، فضای دیسک و تعداد اتصالها
- اینکه سایت پس از انتقال یا بازیابی بکاپ دچار مشکل شده است یا خیر
با این اطلاعات میتوان تشخیص داد که مشکل به تنظیمات وردپرس مربوط است یا باید در سطح سرویس پایگاه داده، شبکه و منابع سرور بررسی شود. این تفکیک از تغییرات غیرضروری و طولانی شدن زمان قطعی سایت جلوگیری میکند.
تفاوت خطای اتصال به پایگاه داده با خطاهای 500 و 503
خطای اتصال به پایگاه داده مستقیما به برقرار نشدن ارتباط وردپرس با پایگاه داده اشاره میکند. خطای 500 یک پاسخ عمومی از سمت سرور است و خطای 503 معمولا نشان میدهد سرویس در حال حاضر قادر به پاسخگویی عادی نیست. این خطاها ممکن است علت مشترکی داشته باشند، اما روش عیبیابی آنها یکسان نیست.
برای آشنایی با روشهای رفع این مشکلات، مقالههای مرتبط سایت افزون را بخوانید:
- خطای 500 وردپرس چیست؟ ۱۰ روش رفع خطای Internal Server Error
- خطای 503 در وردپرس، ۱۰ روش کاربردی برای حل مشکل
- خطای Critical Error در وردپرس چیست و چگونه آن را رفع کنیم؟
چطور از تکرار خطای اتصال به پایگاه داده جلوگیری کنیم؟
- اطلاعات اتصال پایگاه داده را پس از تغییرات هاست یا سرور بررسی کنید.
- برای پایگاه داده و فایلهای سایت بکاپ منظم تهیه کنید.
- فضای دیسک، حافظه و وضعیت سرویس پایگاه داده را پایش کنید.
- افزونهها و قالبهای غیربهینه را شناسایی و اصلاح کنید.
- در زمان افزایش ترافیک، تعداد اتصالها و کوئریهای کند را بررسی کنید.
- گزارشهای خطا را به شکل امن نگه دارید و در زمان بروز مشکل بررسی کنید.
- فرایند بازیابی نسخه بکاپ را به صورت دورهای آزمایش کنید.
جمعبندی
خطای اتصال به پایگاه داده وردپرس ممکن است به اطلاعات نادرست در wp-config.php، توقف MySQL یا MariaDB، محدودیت منابع سرور، دسترسیهای نادرست یا خرابی احتمالی پایگاه داده مربوط باشد. برای رفع مشکل، ابتدا تنظیمات اتصال و وضعیت سرویس را بررسی کنید و سپس با استفاده از لاگها علت دقیق را پیدا کنید.
از تعمیرهای پرریسک و تغییرات بدون تهیه بکاپ خودداری کنید. اگر سایت همچنان از دسترس خارج است یا مشکل به منابع سرور، پایگاه داده یا تنظیمات شبکه مربوط میشود، بررسی تخصصی میتواند زمان قطعی را کاهش دهد و از آسیب به اطلاعات جلوگیری کند.
اگر برای بازیابی سایت یا عیبیابی سرور به کمک نیاز دارید، میتوانید از خدمات فنی سایت افزون استفاده کنید. بررسی دقیق علت خطا، اولین قدم برای بازگرداندن سایت به وضعیت پایدار است.


