رفع خطای Error Establishing a Database Connection در وردپرس
- آموزش • آموزش وردپرس
- ۱۲ اسفند ۱۴۰۱
- 1,938 بازدید
خطای Error Establishing a Database Connection یکی از مشکلات شایع در سایتهای وردپرسی است که باعث میشود وبسایت شما به طور کامل از دسترس کاربران خارج گردد. در این مقاله نحوه رفع این خطا را بررسی میکنیم.
به طور کلی، این پیغام زمانی نمایش داده میشود که وردپرس امکان برقراری ارتباط با پایگاه داده را نداشته باشد.
دلایل مختلفی میتوانند موجب بروز اختلال شوند که عیب یابی آن برای کاربران تازه کار کمی مشکل است.
آنچه در این پست میخوانید
علت بروز خطا چیست؟
اطلاعات اشتباه دیتابیس در تنظیمات وردپرس، مشکلات مربوط به پایگاه داده و عدم ارسال پاسخ از طرف سرور از جمله دلایل اصلی بروز این خطا هستند.
یک دیتابیس در واقع نرم افزاری است که تمامی دادههای وبسایت در آن ذخیره و سازماندهی میشوند.
هر بار که یک کاربر قصد مشاهده سایت شما را داشته باشد، دادهها از دیتابیس خوانده شده و برای کاربر نمایش داده میشوند.
وردپرس برای اتصال به پایگاه داده به اطلاعات زیر نیاز دارد:
- نام پایگاه داده (Database name)
- نام کاربری پایگاه داده (Database username)
- رمز عبور پایگاه داده (Database password)
- سرور پایگاه داده (Database server)
این مشخصات در فایل wp-config.php در روت (public_html) هاست شما ذخیره شدهاند.
اگر یکی از این موارد صحیح نباشد، وردپرس قادر به اتصال نبوده و با خطای Error Establishing a Database Connection مواجه میشوید.
در ادامه با راهنمای گام به گام رفع این مشکل همراه باشید.
1) مشخصات دیتابیس وردپرس را بررسی کنید
رایجترین دلیل بروز خطا، مشخصات اشتباه دیتابیس است؛ خصوصا اگر به تازگی به هاستینگ جدیدی مهاجرت کرده باشید.
همانطور که گفتیم، اطلاعات پایگاه داده وردپرس در فایل wp-config.php موجود در روت هاست شما (public_html) ذخیره میشوند.
این فایل را در هاست پیدا کنید؛ روی گزینه Edit کلیک و وارد صفحه ویرایشگر آن شوید.
کدهای زیر را در بیابید:
// ** 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 وارد نموده و ذخیره کنید.
وبسایت خود را مشاهده کنید؛ اگر خطا رفع نشده بود، ادامه مطلب را مطالعه نمایید.
2) اطلاعات هاست پایگاه داده را چک کنید
اگر از صحیح بودن نام دیتابیس، نام کاربری و پسورد آن اطمینان دارید، باید Database Host را هم بررسی کنید.
این مورد به عنوان DB_HOST (در کدهای بالا) تعریف میشود و نام آن در اکثر شرکتهای هاستینگ برابر با localhost است.
ممکن است تعداد کمی از شرکتها از این قاعده مستثنی باشند؛ پس لازم است که در این خصوص با پشتیبانی هاست خود صحبت کنید.
3) تعمیر پایگاه داده وردپرس
اگر در 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);
پس از ذخیره سازی فایل، با مراجعه به صفحه زیر وارد تنظیمات مربوطه میشوید:
http://www.YOURSITE.com/wp-admin/maint/repair.php
روی گزینه دوم یعنی تعمیر و بهینه سازی پایگاه داده کلیک کنید تا فرآیند آن اجرا شود.
نکته: در این صفحه نیازی به لاگین کردن کاربر وجود ندارد. پس به محض اتمام پروسه، کدی که به wp-config.php اضافه کردید را حذف کنید.
4) بررسی کنید که سرور پایگاه داده شما از کار افتاده است یا خیر
اگر همه چیز درست به نظر میرسد ولی همچنان مشکل پابرجاست، پس احتمالا سرور دیتابیس (MySQL server) از کار افتاده است.
این اتفاق ممکن است هنگام زیاد شدن ترافیک روی یک سرور اتفاق بیوفتد؛ به این صورت که سرور هاست شما قادر به مدیریت درخواستها نیست. این مشکل در هاستهای اشتراکی بیشتر مشاهده میشود.
بدین ترتیب، بسیاری از کاربران با مشکل کندی سایت و برخی با عدم لود مواجه میشوند.
برای بررسی این مشکل، با پشتیبانی هاستینگ خود تماس بگیرید و سوال کنید که آیا سرور MySQL شما دچار مشکل شده است یا خیر؟
اگر از سرور اختصاصی استفاده میکنید و وبسایتهای دیگری هم روی آن دارید، به آن سایتها مراجعه کنید و در صورت مشاهده مشکل، مطمئن میشوید که سرور SQL شما از کار افتاده است.
اما اگر وبسایت دیگری ندارید یا از هاست اشتراکی استفاده میکنید، از طریق کنترل پنل هاستتان وارد phpMyAdmin شوید.
در صورتی که phpMyAdmin قادر به اتصال به دیتابیس بود و جداول را بارگذاری کرد، باید بررسی کنید که کاربر پایگاه داده شما دسترسی کافی را دارد.
برای این کار، در روت (public_html) هاست خود یک فایل با نام testconnection.php ایجاد کرده و کد زیر را در آن قرار دهید:
<?php $link = mysqli_connect('localhost', 'username', 'password'); if (!$link) { die('Could not connect: ' . mysqli_error()); } echo 'Connected successfully'; mysqli_close($link); ?>
حتما username و password دیتابیس خود را در کد بالا جایگزین کنید.
پس از ذخیره سازی فایل، آن را در مرورگر خود باز کنید. (آدرس https://YOURSITE.COM/testconnection.php)
اگر با خطایی مواجه نشدید و اسکریپت به شکل موفقیت آمیز اجرا شد، یعنی کاربر دیتابیس شما دسترسی کافی را دارد و مشکل از جای دیگریست.
مجدد فایل wp-config.php را از نظر صحیح بودن اطلاعات و عدم وجود اشتباه تایپی بررسی نمایید.