احتمالا تا الان این خطا رو در وردپرس مشاهده کردین:
Error Establishing a Database Connection
این خطا میتونه به دلایل زیادی ایجا بشه. و وقوعش خیلی ناامیدکنندهاس. در این مقاله ما میخواهیم لیستی از دلایل احتمالی این مشکل رو بررسی کنیم.
توجه: لطفا قبل از انجام هر کاری، یک نسخه پشتیبان تهیه کنین.
آیا مشکل برای داشبورد وردپرس هم قابل مشاهده است؟
لطفا چک کنین که آیا داشبورد وردپرس، خطای دیگری بجز خطای Establishing a Database Connection نشون میده یا نه. بعد احتمالا نیازه که شما دیتابیس رو تعمیر کنین. خوشبختانه وردپرس ابزاری برای این کار داره. برای استفاده ازش، این خط رو به فایل wp-config.php اضافه کنین:
1 |
define('WP_ALLOW_REPAIR', true); |
حالا به http://www.yourwebsite.com/wp-admin/maint/repair.php برین
صفحه مشابه این صفحه رو خواهید دید:
حالا میتونین دیتابیس رو تعمیر یا تعمیر و بهینهسازی کنین. لطفا به یاد داشته باشین که بعد از پایان کار، تغییرات در فایل wp-config.php رو حذف کنین.
اعتبار دیتابیس در wp-config.php
حالا در حال بررسی صحیح بودن اعتبار دیتابیس در فایل wp-config.php هستیم، اونجا این خطها رو دارین:
1 2 3 4 |
define('DB_NAME', 'database_name'); define('DB_USER', 'database_username'); define('DB_PASSWORD', 'database_password'); define('DB_HOST', 'localhost'); |
لطفا چک کنین که همه این کادرها (کاربر، رمز عبور، دیتابیس، هاست) صحیح باشن مخصوصا اگه رمزعبور رو اخیرا تغییر دادین.
گاهی اوقات مشکل مربوط به اسم هاست هست.روی اکثر سرورهای هاستینگ، ما میتونیم از لوکال هاست به عنوان DB_HOST استفاده کنیم، اما گاهی اوقات باید از آدرس IP، اسم خاص هاست یا آدرس هاست استفاده کنیم. برای مثال در هاستینگ GoDaddy از این استفاده میکنیم:
1 |
define('DB_HOST', 'h41mysql52.secureserver.net'); |
مثال دوم – 1and1
1 |
define('DB_HOST', 'db12345678'); |
امتیازات کاربر دیتابیس
میتونین این PHP script رو در فایل test_user.php ایجاد کنین:
1 2 3 4 5 6 |
<?php $pe_access= mysql_connect('localhost', 'database_username', 'database_password'); if (!pe_access) { die('Could not connect: ' . mysql_error()); } echo 'Connection is OK'; mysql_close(pe_access); ?> |
لطفا به یاد داشته باشین که باید database_username و database_password رو برای مطابقت با اعتبارنامه خودتون تغییر بدین. حالا این فایل رو در روت وردپرستون کپی کنین و اون رو با url وارد کنین:
http://www.yourwebsite.com/test_user.php.
اگر پیغام Connection is OK رو دریافت کردین، کاربر شما، دارای امتیازات صحیح هست. اگر پیغام دیگه ای دریافت کردین، ممکنه مشکلی وجود داشته باشه.
کاربر و رمز عبور جدید برای دیتابیس
میتونین با دسترسی به cPanel خودتون، کاربر جدید دیتابیس رو ایجاد کنین و این کاربر جدید رو به دیتابیس مورداستفاده در سایت وردپرستون اضافه کنین. لطفا همه امتیازات رو بهش بدین. حالا فایل wp-config.php رو ویرایش کنین و خطوط رو تغییر بدین:
1 2 |
define('DB_USER', 'database_username'); define('DB_PASSWORD', 'database_password'); |
URL سایت در دیتابیس
کار دیگری که میتونین انجام بدین اینه که URL سایت رو در دیتابیس لغو کنین.
به phpMyAdmin برین (البته اگر میتونین) و دستور SQL رو اجرا کنین:
1 |
UPDATE wp_options SET option_value='http://www.yourwebsite.com' WHERE option_name='siteurl' |
لطفا یادتون باشه که http://www.yourwebsite.com رو با url وبسایت خودتون عوض کنین. همچنین چک کنین که آیا wp_ prefix استاندارد رو در جداول دیتابیس دارین یا نه.اگر prefix شما برای مثال my- باشه دستور شما به این شکل خواهد بود:
1 |
UPDATE my_options SET option_value='http://www.yourwebsite.com' WHERE option_name='siteurl' |
Server overload
اگر همه راهحلهای بالا رو امتحان کردین و هیچ کدوم جواب نداد، میتونیم سرورمون رو cavil کنیم. اگر روی همون سرور، وبسایتهای دیگری هم دارین، لطفا سعی کنین چکشون کنین. اگر اونها فعال نیستن، قطعا دلیلش سرور هست.
همچنین میتونین phpMyAdmin رو وارد کنین و چک کنین که آیا میتونین با استفاده از نام کاربری و رمز عبوراستفاده شده در فایل wp-config.php به دیتابیستون دسترسی داشته باشین یا نه. اگر نمیتونین به دیتابیس دسترسی داشته باشین، احتمالا دلیلش اینه که سرور MYSQL از کار افتاده.
اگر هیچ کدوم از راهحلهای بالا مشکلتون رو حل نکرد، با هاستینگ خودتون تماس بگیرین و ازشون بپرسین که آیا سرور MYSQL به درستی کار میکنه یا نه.