تقریبا خطای اتصال به پایگاه داده وردپرس برای یک بار هم که شده برای تمام کسانی که از سیستم مدیریت وردپرس استفاده میکنند پیش آمده و یا خواهد آمد، این خطا به دلایل گوناگونی در سایت رخ میدهد که به دلیل عدم برقراری ارتباط میان پایگاه داده و فایلهای وردپرس پردازشی صورت نگرفته و بنابراین چیزی جز یک پیغام خطا تحت عنوان error establishing a database connection به شما نمایش داده نخواهد شد.
برای رفع این خطا راههای گوناگونی از بررسی فایلهای وردپرس و تست اطلاعات اتصال به وردپرس گرفته تا تعمیر دیتابیس وجود داره که به ترتیب باید هر یک از اونها را انجام بدین تا بتونید نسبت به رفع خطای اتصال به پایگاه داده وردپرس اقدام کنید.
همونطور که گفتم وقتی خطایی در ارتباط با دیتابیس وردپرس در سایت شما پیش میاد و پیغام خطای اونو مشاهده میکنید دلیل اون اینه که فایلهای وردپرس شما که با زبان PHP نوشته شدند قادر به ایجاد ارتباط با پایگاه داده سایت شما نیستند تا بتونن اطلاعات رو به شما نمایش دهند، دلایل گوناگونی میتونه برای ایجاد این خطا وجود داشته باشه که موارد زیر نمونههایی از اون هستند:
- حذف کلی دیتابیس سایت
- تغییر در اطلاعات دیتابیس و اشتباه بودن اطلاعات در فایل wp-config.php
- ایجاد خطا هنگام تغییر پیشوند جداول وردپرس
- تغییر سطح دسترسی به فایلهای وردپرس
- بروز خطا هنگام انتقال وردپرس به دامنه و یا هاست جدید
- وجود مشکل در سرور
- و…
بررسی اطلاعات دیتابیس وردپرس:
در اولین گام باید بررسی کنید که اطلاعات دیتابیس که در فایل wp-config.php وجود داره به درستی وارد شده باشند، برای این منظور وارد هاست خودتون شده و سپس به قسمت File Manager هاست مراجعه کنید.
بعد از این مرحله به مسیری که وردپرس را نصب کردهاید مراجعه کنید(معمولا public_html که روت اصلی سایت میباشد) سپس در اینجا فایلی با نام wp-config.php را خواهید دید، اگر از هاست سیپنل استفاده میکنید روی اون راست کلیک کرده و گزینه Edit را برای ویرایش انتخاب کنید و اگر از هاست دایرکت ادمین استفاده میکنید روی دکمه Edit که در مقابل نام فایل قرار داره کلیک کنید تا صفحه ویرایش و بررسی فایل کانفیگ وردپرس برای شما باز شود.
در این فایل اطلاعات دیتابیس قرار میگیرند که وظیفه این فایل ایجاد ارتباط با پایگاه داده MySql هستش، پس درون فایل به دنبال کدی همچون کد زیر :
// ** 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: در این قسمت هم باید رمز پایگاه داده وردپرس که هنگام نصب وردپرس برای دیتابیس خودتون تعیین کردید را وارد کنید.
حالا برای اینکه هر یک از اطلاعات بالا را با دیتابیس خود چک کنید و مطابقت بدید وارد صفحه اصلی هاست خودتون شده و بسته به نوع کنترل پنل هاست که میتونه سیپنل و یا دایرکت ادمین باشه، در صورتی که هاست شما سیپنل هست به قسمت DATABASES مراجعه کرده و سپس روی گزینه MySql Database کلیک کنید تا به صفحه مشاهده دیتابیسهای ساخته شده هدایت شوید.
بعد از این مرحله وارد صفحه زیر خواهید شد که در اون میتونید اطلاعات دیتابیس همچون نام دیتابیس، نام کاربری دیتابیس و یوزر انتخاب شده برای دیتابیس را هم چک کنید و ببینید که آیا کاربر انتخابی برای دیتابیس به درستی وارد شده است یا نه، که در صورت اشتباه بودن میتونید تا اونها را اصلاح کنید.
حالا اگر اطلاعات بالا یعنی نام دیتابیس و نام کاربری به درستی وارد شده بودند ولی رمز دیتابیس رو شک دارید که درست باشه ابتدا روی Change Password کلیک کنید تا به صفحه تغییر رمز دیتابیس وارد شوید.
سپس مشابه چیزی که در تصویر مشاهده میکنید در دو فیلد password و password again رمز مورد نظر را وارد کرده و روی دکمه change password کلیک کنید تا رمز شما تغییر داده شود.
حالا که رمزتون را تغییر دادید به ویرایش فایل wp-config.php مراجعه کرده و در قسمت DB_PASSWORD که برای رمز پایگاه داده وردپرس هستش به جای رمز قبلی دیتابیس رمز جدید را وارد کرده و فایل را ذخیره کنید.
حالا سایتتون را باز کنید و ببینید که آیا مشکل برطرف شده است یا خیر، در صورتی که مشکل همچنان برقرار بود باید بررسی کنید ببینید که آیا اتصال دیتابیس برقرار است یا خیر که در ادامه به بررسی اون میپردازم.
برای اینکه اطمینان حاصل کنید مشکل از دیتابیس هست یا نه ابتدا وارد File Manager هاست شده و سپس یک فایل در مسیر اصلی سایت یعنی public_html با نام testdb.php بسازید و کد زیر را درون فایل مورد نظر قرار داده و ذخیره کنید.
حالا اطلاعات موجود در فایل را به شکل زیر وارد کنید:
your_hostname: در این قسمت نام هاست خود را وارد کنید که معمولا از localhost استفاده میشود.
database_username: در این بخش نام کاربری دیتابیس خود را وارد کنید.
database_password: در این بخش رمز دیتابیس خود را وارد کنید.
حالا که اطلاعات دیتابیس را در فایل وارد کردید آدرس دامنه خود را وارد کرده و سپس نام فایل را وارد کنید تا صفحه مورد نظر برای شما باز شود، به عنوان مثال http://site.com/testdb.php کافیه تا به جای نام دامنه آدرس سایت خودتون را وارد کنید، در نهایت بعد از باز شدن صفحه اگر با پیغام Connected successfully مواجه شدید نشون دهنده اینه که اطلاعات دیتابیس شما به درستی وارد شده است.
گاهی اوقات پیش میاد که اطلاعات وارد شده در فایل wp-config.php درست باشند اما پیشوند جداول در اون به اشتباه وارد شده باشد که این مورد هنگام تغییر پیشوند جداول وردپرس معمولا رخ خواهد داد. بنابراین در فایل wp-config.php کمی به سمت پایین اسکرول کرده و به دنبال عبارت زیر باشید.
$table_prefix = 'wp_';
عبارت wp_ در کد بالا که معرف پیشوند جداول دیتابیس شما است باید به درستی وارد شده باشد. بنابراین اگر از یک افزونه امنیتی استفاده کردید و پیشوند جداول وردپرس را تغییر دادین، پیشوند صحیح را در کد بالا جایگزین عبارت wp_ کرده و تغییرات را ذخیره کنید.
حالا مجددا چندبار سایت را رفرش کنید تا ببینید مشکل برطرف شده یا خیر.
گاهی اوقات خطای اتصال به پایگاه داده وردپرس هنگام تغییر آدرس سایت رخ میده که در اون اطلاعات دامنه قبلی همچنان برای سایت ثبت شدهاند. برای رفع این مشکل مجددا فایل wp-config.php را باز کرده و در اون به دنبال قطعه کد زیر بگردید.
define('WP_HOME','http://your-site.com');
define('WP_SITEURL','http://your-site.com');
حالا اگر که این دو خط را پیدا کردید مطمئن بشید که نام دامنه در هر دو خط به درستی وارد شده باشه، اما اگر این دو خط را پیدا نکردید خودتون با قرار دادن کدهای فوق در فایل wp-config.php این بخش را اضافه کرده و فایل را ذخیره کنید. حالا سایت را باز کرده و چند بار رفرش کنید و ببینید که مشکل شما برطرف شده است یا خیر!
اگر همچنان مشکل باقی بود به سراغ پوشه wp-includes در هاستتان بروید و فایل functions.php را در آن پیدا کرده و بررسی کنید که آیا دو خط زیر را در آن وجود دارند یا خیر:
update_option( 'siteurl', 'http://your-site.com' );
update_option( 'home', 'http://your-site.com' );
اگر این دو خط وجود داشتند آدرس موجود در اونها را با آدرس دامنه خودتون چک کنید که به درستی وارد شده باشند، اما اگر وجود نداشتند میتونید تا با قرار دادن این دو خط دقیقا بعد از خط اول که با <?php شروع شده اضافه کنید.
حالا مجددا سایت خودتون را چندبار رفرش کنید تا ببینید مشکل برطرف شده است یا خیر، همچنین دقت کنید آدرسهایی که وارد میکنید در استفاده از www در وردپرس یا http و https به درستی وارد شده باشند و سایت خودتون را هم که برای بررسی مجدد رفرش میکنید دقیقا با چنین آدرسی باز کرده باشید.
در نهایت بعد از اینکه این دو کار را بر روی فایل wp-config.php و functions.php انجام دادید، چه مشکل شما برطرف شد و چه همچنان مشکل باقی بود این دو خط کد را باید از این دو فایل حذف کنید.
گاهی اوقات مشکل به دلیل تغییر سطح دسترسی به فایلهای وردپرس رخ میده، به عبارت دیگه فایلهای PHP وردپرس که کدهای برنامهنویسی در اون قرار دارند به دلیل تنظیم نبودن سطح دسترسی مجاز ارتباط اونها با دیتابیس برقرار نشده و به همین دلیل با چنین خطایی مواجه خواهید شد. برای اینکه بررسی کنید سطح دسترسی برای فایلها و پوشههای وردپرس به درستی انتخاب شدهاند باید فایلهای و پوشههای وردپرس در بخش File Manager هاست که در مسیر public_html قرار دارند دارای سطح دسترسی زیر باشند.
سطح دسترسی برای فایلهای وردپرس معادل 644 باشد.
سطح دسترسی برای پوشههای وردپرس معادل 755 باشد.
جهت کسب اطلاعات بیشتر در این زمینه آموزش نحوه تغییر سطح دسترسی فایل ها و پوشه ها در سی پنل را مشاهده کنید، حالا تمامی پوشهها و فایلهای وردپرس را بررسی کنید تا دارای چنین سطح دسترسی باشند. میتونید آخرین نسخه از وردپرس را هم دانلود کرده و بعد از اینکه فایل wp-config.php و پوشه wp-content را از درون اون حذف کردید در همین مسیر آپلود کنید تا با فایل ها و پوشههای فعلی جایگزین شود. درست مشابه همون چیزی که در مقاله آموزش بهروزرسانی وردپرس در بخش آپدیت دستی وردپرس به اون پرداختیم.
برای اینکه بررسی کنید سطح دسترسی برای فایلها و پوشههای وردپرس به درستی انتخاب شدهاند باید فایلهای و پوشههای وردپرس در بخش File Manager هاست که در مسیر public_html قرار دارند دارای سطح دسترسی زیر باشند.
- سطح دسترسی برای فایلهای وردپرس معادل 644 باشد.
- سطح دسترسی برای پوشههای وردپرس معادل 755 باشد.
بعد از اینکه تمامی مراحل بالا را طی کردید و همچنان مشکل شما پا برجا بود احتمالا دیتابیس شما نیاز به کمی تعمیرات داره تا بهینه سازی بر روی اون صورت بگیره.
بنابراین برای تعمیر و آماده سازی دیتابیس وردپرس ابتدا فایل wp-config.php را باز کرده و قطعه کد زیر را در مکان مناسبی از اون قرار بدین.
define( 'WP_ALLOW_REPAIR', true );
سپس تغییرات را با ذخیره کردن فایل اعمال کرده و سپس آدرس سایتتون را مشابه نمونه زیر وارد کنید. دقت کنید که به جای site.com از نام دامنه خودتون استفاده کنید.
http://your-site.com/wp-admin/maint/repair.php
بعد از اینکه وارد آدرس فوق بشید و اون را باز کنید مشابه تصویر زیر صفحهای به شما نمایش داده خواهد شد.
حالا کافیه تا روی دکمه تعمیر پایگاه داده کلیک کرده و منتظر بمونید تا عملیات تعمیر دیتابیس صورت گرفته و به انتها برسد.
بعد از اینکه عملیات تعمیر دیتابیس انجام گرفت مجددا به فایل wp-config.php برگردید و کدی که برای استفاده از حالت تعمیر وردپرس به اون اضافه کردید را ازش برداشته و فایل را ذخیره کنید، حالا مجددا سایت رو باز کنید و چندین بار رفرش کنید تا ببینید مشکل برطرف شده است یا خیر؟
در صورتی که همچنان مشکل پا برجا بود به راهکار نهایی میرسیم که همانا ارتباط با پشتیبانی هاستینگ هست و این مشکل را دیگه باید با اونها در میان بگزارید.
- نتیجه گیری
ما در اینجا راهکارهایی برای رفع خطای اتصال به پایگاه داده و دیتابیس وردپرس شرح دادیم.
در صورتی که همچنان مشکل پا برجا بود و با هیچکدام از روش های بالا مشکل سایت شما برطرف نشد ، به راهکار نهایی میرسیم که همانا ارتباط با پشتیبانی هاستینگ هست و این مشکل را دیگه باید با اونها در میان بگزارید و تقریبا مطمئن باشید که این مشکل ولو با بازگردانی بکاپ سالم از سایتتون برطرف خواهد شد.
منبع نوشته : پایگاه دانش میزبان فا