یکی دیگر از خطاهایی ممکن است به آن بر بخورید، خطای Error Establishing a Database Connection است. اگر شما الان چنین خطایی در سایت خود دارید، نگران نباشد. به سادگی قابل رفع است.به صورت خلاصه این خطا هنگامی رخ میدهد که اتصال به دیتابیس بر قرار نمیشود. علتهایی مختلفی میتوان داشته باشد که باهم در ادامه همین مقاله بررسی میکنیم.
توجه: قبل از هرکاری همواره در نظر داشته باشید که یک بکاپ از سایت خود داشته باشید.
دلیل خطای Error Establishing a Database Connection چیست؟
خطای عدم برقراری ارتباط به پایگاه داده در وردپرس، دلایل مختلفی میتواند داشته باشد. از دلیلهای ساده که بر اثر کم دقتی به وجود میآید تا مشکلات اساسی در سطح زیر ساخت سایت شما. معمولا این خطا به دلیل اشتباه وارد کردن نام و نام کاربری دیتابیس رخ میدهد. همچنین میتوانید به دلیل عدم اتصال این دو باشد. یا در بعضی موارد مشکل از سمت سرور شما است که به درستی کانفیگ نشده است و در برقراری ارتباط با دیتابیس به مشکل میخورد. هرکدام از اینها باشد، قابل رفع است. نگران نباشید. در ادامه به دیباگ کردن ایم ارور یا رفع خطا میپردازیم.
۱. چک کردن پوشه wp-admin
وقتی که خطای Error Establishing a Database Connection را در سایت وردپرسی خود دارید، اول باید بدانیم که این خطا آیا فقط در سمت مدیریت (wp-admin) است یا در سمت کاربری سایت (front-end) است. البته ممکن است این خطا در هر دو سمت باشد. اگر این خطا در هر دو سمت بود به مرحله دو بروید. ولی اگر در سمت 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” قرار دهید.)
define('WP_ALLOW_REPAIR', true);
بعد از قرار دادن این کد، به آدرس زیر در سایت خود مراجعه کنید. از این آدرس میتوانید دیتابیس خود را تعمیر (repair) کنید.
yoursite.com/wp-admin/maint/repair.php
توجه: به جای عبارت yoursite.com باید نامه دامنه خود را قرار دهید.
خب پس از انجام مراحل بالا شما صفحهای به عنوان صفحه تعمیر پایگاه داده وردپرس مشاهده میکنید و میتوانید با انتخاب گزینه “تعمیر پایگاه داده” دیتابیس سایت خود را تعمیر کنید.
۲. مثل همیشه wp-config.php را چک کنید
وقتی به این ارور بر میخورید، ابتدایی ترین کاری که باید بکنید چک کردن فایل wp-config.php در شاخه اصلی (پوشه روت) هاست شما است. توجه داشته باشید که باید درستیه نام و نام کاربری و رمزو دیتابیس خود را چک کنید.
define('DB_NAME', 'database-name'); define('DB_USER', 'database-username'); define('DB_PASSWORD', 'database-password'); define('DB_HOST', 'localhost');
اگر مشخصات بالا صحیح نبود آن را تصحیح کنید و مجددا چک کنید. اگر مشکل رفع شد که چه بهتر، و اگر مشکل رفع نشد ادامه این مقاله را بخوانید.
۳. چک کردن سطح دسترسیهای دیتابیس (privilege)
در این مرحله باید چک کنید که به درستی نام و نام کاربری دیتابیس به هم متصل شده اند و همچنین سطح دسترسی آنها به درستی تنظیم شده است. برای این کار وارد هاست خود شوید. در این آموزش فرض بر هاست سی پنل است. مطابق تصویر زیر وارد قسمت MySQL® Databases شوید.
در مرحله بعدی، در قسمت Add User To Database نام و نام کاربری دیتابیس خود را انتخاب کنید.
و در قسمت بعد، مطابق تصویر زیر ALL PRIVILEGES را فعال کنید و با کمک گزینه Make Changes تغییرات را ذخیره کنید.
با اینکار شما مطمئن شدید که تمام دسترسیهای لازم برای دیتابیس برقرار است. بعد از انجام این مرحله مجددا سایت خود را چک کنید. اگر مشکل رفع شده بود، مشکل از سطح دسترسی دیتابیس بوده است. و اگر مشکل رفع نشده است، میریم سراغ راه حلهای بعدی.
۴. مشکل در سطح زیرساخت است!
اگر تمام روشهای بالا را انجام دادید و مشکل شما رفع نشد، حتما مشکل از سمت سرور شما است. با مدیر سرور خود تماس بگیرید یا یک تیکت به آنها بزنید و مشکل را برایشان توضیح دهید. البته من چند روش کمی فنیتر در ادامه براتون میگم ولی حتما قبل از انجام این تغییرات یک بکاپ از سایت خود داشته باشید.
کمی فنیتر وارد عمل بشیم!
ــ معمولا در فایل wp-config.php مقدار DB_Host برابر با localhost میباشد. اما گاهی با توجه به کانفیگ خاصی که سرور شما انجام میدهد ممکن است متفاوت باشد (که البته نباید باشد). برای همین است که من پیشنهاد میکنم همیشه یک هاست مطمئن و با کیفیت تهیه کنید. حال به هر صورت این کار را امتحان کنید. مقدار DB_Host را در wp-config.php برابر با آیپی هاست خود قرار دهید. مثلا اگر آیپی هاست شما 135.128.25.26 باشد مقدار را مطابق زیر تغییر دهید.
define('DB_HOST', '135.128.25.26');
ــ سرور MySQL خود را امتحان کنید. یک فایل ایجاد کنید مثلا با نام testconnection.php و کد زیر را در آن قرار دهید. توجه داشته باشد که USERNAME و PASSWORD را باید به مقدار نام کاربری و رمز عبور خود تغییر دهید.
<?php $link = mysql_connect('localhost', 'USERNAME', 'PASSWORD'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>
بعد از اجرای این فایل اگر به هر پیامی به جز Connected successfully برخورد کردید، مشکل از MySQL است و از دست شما کاری بر نمیآید و باید حتما با مدیر سرور خود تماس بگیرید.
ــ گاهی اوقات ممکن است به دلیل وارد کردن اشتباه آدرس سایت (معمولا وقتی به صورت دستی انتقال وردپرس صورت میگیرد) در دیتابیس این مشکل به وجود بیاید. شما میتوانید با وارد شدن به phpMyAdmin به جدول wp-options مراجعه کنید و مقدار siteurl و home را بررسی کنید. یا میتوانید از کوئری زیر استفاده کنید (توجه داشته باشید که مقدار YOUR_SITE_URL را باید برابر با آدرس سایت خود قرار دهید):
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
موفق شدید یا نه؟
امیدوارم که با استفاده از روشهای بالا توانسته باشید خطای error establishing a database connection را رفع کرده باشید. اگر سوالی دارید و هنوز موفق نشدید میتوانید در زیر همین نوشته دیدگاه خود را برای من ارسال کنید.
همچنین دوستانی که موفق شدند لطفا در صورت تمایل در قسمت دیدگاهها تجربهی خود را ثبت کنند. با تشکر از همراهی شما عزیزان. موفق باشید.