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

وقتی وردپرس می‌گوید به دیتابیس وصل نمی‌شود؛ ترتیبی که من بررسی می‌کنم

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

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

اول: کل سایت یا فقط یک بخش

اول بررسی می‌کنم آیا فقط صفحه اصلی این خطا را می‌دهد یا آدرس wp-admin هم. اگر پنل مدیریت پیام دیگری مثل «یک یا چند جدول دیتابیس در دسترس نیست» بدهد، مشکل احتمالا خراب شدن جدول‌هاست، نه قطع اتصال. این تفاوت کوچک مسیر را کاملا عوض می‌کند.

دوم: فایل wp-config.php

بیشتر مواردی که من دیده‌ام همین‌جا حل شده. چهار خط را نگاه می‌کنم:

define('DB_NAME', '...'); define('DB_USER', '...'); define('DB_PASSWORD', '...'); define('DB_HOST', '...');

موقعیت‌هایی که این مقادیر بهم می‌ریزند:

  • سایت را از هاست دیگری منتقل کرده‌اید و اسم دیتابیس یا کاربر عوض شده

  • کسی رمز کاربر دیتابیس را از پنل عوض کرده ولی فایل را به‌روز نکرده

  • مقدار DB_HOST روی localhost مانده در حالی که هاست جدید آدرس دیگری می‌خواهد

یک بار تمام یک ظهر را گشتم و آخرش معلوم شد یک فاصله اضافه آخر رمز عبور بوده که موقع کپی آمده بود.

سوم: کاربر به دیتابیس دسترسی دارد

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

چهارم: سرویس دیتابیس بالاست

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

پنجم: جدول‌های خراب

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

define('WP_ALLOW_REPAIR', true);

بعد به آدرس wp-admin/maint/repair.php می‌روم و تعمیر را اجرا می‌کنم. این صفحه به ورود نیاز ندارد، پس حتما بعد از کار خط را پاک می‌کنم. قبل از تعمیر هم یک بکاپ از دیتابیس می‌گیرم، حتی اگر خراب باشد.

ششم: فشار زیاد روی دیتابیس

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

چیزی که همیشه آماده دارم

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

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

اگه نمی‌خواید درگیر تنظیم دیتابیس و سرور بشید، یه پیشنهاد هم دارم: پاستاکلود یه سرویس ابری ایرانیه که دیتابیس و وردپرس رو آماده تحویل می‌ده.

برای شفافیت: من با پاستاکلود همکاری دارم.

دیتابیسوردپرسmysql
۰
۰
آرمان راد
آرمان راد
وردپرس و زیرساخت وب می‌نویسم. تجربه‌های واقعی از هاست، دیتابیس و راه‌اندازی سایت برای کسی که می‌خواد کمتر خطا کند.
شاید از این پست‌ها خوشتان بیاید