رفع مشکل Error Establishing a Database Connection و اتصال به دیتابیس در وردپرس
گاهی پیش میآید که ناگهان سایتتان با خطای Error Establishing a Database Connection مواجه میشود و وقتی که به سراغ سایتتان میروید به جای بالا آمدن سایت فقط این پیغام نمایش داده میشود. گاه ممکن است تغییراتی در سایت داده باشید مثلا افزونهای نصب کرده باشید اما گاهی ممکن است بدون این که کار خاصی انجام داده باشید با این پیغام مواجه شوید. در این صورت احتمالا مشکل مربوط به هاست و میزبان سایت شما میشود. در این مقاله، علت این مشکل و راههای رفع آن را توضیح میدهیم به طوری که تا پایان مقاله، مثل همیشه، خودتان بتوانید این مشکل را رفع کنید.
علت به وجود آمدن مشکل Error Establishing a Database Connection چیست؟
خطای عدم برقراری ارتباط با پایگاه داده معمولا به خاطر اطلاعات نادرست مربوط به دیتابیس در تنظیمات وردپرس، مشکل در دیتابیس یا عدم پاسخدهی سرور دیتابیس اتفاق میافتد.
اطلاعات مربوط به دیتابیس در فایل wp-config.php در روت وردپرس ذخیره میشود. اطلاعاتی مثل سرور دیتابیس، نام دیتابیس، نام کاربری و رمز عبور برای ارتباط با دیتابیس
برای اینکه بعدا به این فایل نیاز داریم توجه داشته باشید که برای پیدا کردن این فایل باید به کنترل پنل هاست (مثلا سی پنل یا دایرکت ادمین) و سپس فایل منیجر File Manager آن مراجعه کنید. حالا باید به روت سایت خود مراجعه کنید. اگر سایتتان در دامنه اصلی و نه ساب دامین است روت سایت شما داخل پوشه public_html است. فایل wp-config.php درون این پوشه قرار دارد.
حالا برای رفع مشکل چه کنیم؟
۱- اطلاعات دیتابیس وردپرس را بررسی کنید
از طریق آدرسی که در بالا گفتیم به سراغ فایل wp-config.php رفته و روی دکمه ادیت برای ویرایش این فایل کلیک کنید. این کدها را درون فایل بیابید:
1 2 3 4 5 6 7 8 9 | // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'database_name_here' ); /** MySQL database username */ define( 'DB_USER', 'username_here' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password_here' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); |
حالا باید اطلاعاتی که در بخش نام دیتابیس (database_name_here
) و نام کاربری (username_here
) و رمز (password_here
) وجود دارد را با اطلاعات دیتابیس خود مطابقت دهید. برای این کار در کنترل پنل به سراغ Mysql Databases بروید:
سپس نام دیتابیس و یوزر و رمز را چک کنید تا درست باشد. برای اطمینان میتوانید یک رمز جدید از طریق این قسمت تنظیم کرده و همین رمز را در کدهای بالا در wp-config.php در بخش رمز وارد کنید.
برای تغییر رمز روبروی یوزری که به دیتابیس شما وصل است روی change password کلیک کرده و رمز را تغییر دهید.
نکته: طبق تجربه ما یک توصیه دیگر هم به شما میکنیم که در برخی مواقع جواب میدهد و مشکل را رفع میکند. برای اطمینان بیشتر بهتر است یک یوزر جدید برای دیتابیس با یک رمز جدید تعریف کنید. در این قسمت یک یوزر جدید ایجاد کرده و از قسمت Add user to database یوزری که ایجاد کردید را به دیتابیستان اختصاص دهید. حالا مشخصات یوزر و رمز جدید را در wp-config.php کپی کنید.
پس از انجام این اقدامات دوباره سایت را تست کنید و ببینید که آیا مشکل رفع ده است.
۲- اطلاعات هاست دیتابیس خود را چک کنید
وقتی مطمئن شدید اطلاعات مربوط به دیتابیس به درستی در وردپرس تنظیم شده حالا بررسی کنید که میزبان دیتابیس شما چیست. اگر به کدهای فایل wp-config.php که در بالا آوردیم دقت کنید در قسمت هاست دیتابیس عبارت localhost آورده شده که در اغلب شرکتها صدق میکند. اما برخی از شرکتهای هاستینگ در سرورهایی مجزا، دیتابیس را میزبانی میکنند. میتوانید این موضوع را از شرکت هاستینگ خود سوال کنید.
۳- بررسی کنید آیا سرور دیتابیس شما دان شده است
اگر همه چیز به نظر اوکی میرسد ولی همچنان وردپرس نمیتواند با دیتابیس ارتباط برقرار کند ممکن است سرور دیتابیس شما دان شده و از کار افتاده باشد. برای بررسی این موضوع میتوانید به همان قسمت mysql Databases در کنترل پنل هاست مراجعه کنید. اگر وقتی به بخش دیتابیسها رفتید و با ارور مواجه شدید یا نام دیتابیسها پدیدار شد مشخص میشود که سرور دیتابیس دان شده و باید به شرکت هاستینگ تیکت بزنید تا مشکل را رفع کند. همچنین میتوانید به phpmyadmin رفته و از آنجا چک کنید که آیا به دیتابیستان دسترسی دارید یا خیر.
اگر توانستید به دیتابیس متصل شوید آن وقت باید ببینیم که یوزر شما دسترسی کامل به دیتابیس دارد یا خیر. برای بررسی این مورد یک فایل مثلا با نام testconnection.php در روت سایت خود ایجاد کرده و این کدها را داخلش قرار دهید:
1 2 3 4 5 6 7 8 | <?php $link = mysqli_connect( 'localhost' , 'username' , 'password' ); if (! $link ) { die ( 'Could not connect: ' . mysqli_error()); } echo 'Connected successfully' ; mysqli_close( $link ); ?> |
حالا این فایل را با کپی کردن آدرس آن در آدرس بار مرورگر (یه همچین آدرسی: oursite.com/testconnection.php) باز کنید. اگر با پیغام اتصال موفقیت آمیز Connected successfully
مواجه شدید یعنی دسترسی اوکی است و چیز دیگری مشکل دارد. اما اگر پیغام عدم اتصال را دریافت کردید به نکتهای که در بالا اشاره کردم مراجعه کرده و یک یوزر با رمز جدید برای دیتابیس ایجاد کرده و در تنظیمات وردپرس قرار دهید.
۴- تعمیر دیتابیس وردپرس (رفع سایر خطاهای دیتابیس)
اگر هم مشکل دیگری در ارتباط با دیتابیس وجود دارد مثلا هنگام لود سایت با خطای One or more database tables are unavailable. The database may need to be repaired مواجه میشوید آن وقت باید دیتابیس را تعمیر کنید.
برای این کار دوباره به فایل wp-config.php مراجعه کرده و تکه کد زیر را در این فایل و در بالای خط ‘That’s all, stop editing! Happy blogging’ وارد کنید.
1 | define( 'WP_ALLOW_REPAIR' , true); |
حالا سایت خود را در این آدرس باز کنید:
http://www.yoursite.com/wp-admin/maint/repair.php
در صفحهای که مشاهده میکنید بر روی دکمه Repair Database کلیک کنید. بعد از این کار یادتان نرود تکه کد بالا را حتما از فایل wp-config.php حذف کنید.
با این راهکارها با احتمال زیاد مشکل خود را حل میکنید. مثل سایر موارد، اگر این مقاله در رفع مشکل به شما کرد با ما در میان بگذارید. بخش تعمیرات و خدمات فرشمی، همواره آموزشهای متنی یا ویدیویی متنوع برای مشکلات مختلف منتشر میکند و در انجمن پرسش و پاسخ فرشمی هم میتوانید به طور مستقیم سوال کنید و یا پاسخ خود را از محتوای داخل انجمن به سادگی دریافت کنید.