اگر در دستۀ کاربران مبتدی یا حتی متوسط و پیشرفته بوده باشید، با چندبار جستجو در سایت با این خطا Error Establishing a Database Connection روبه رو شدهاید. این مشکل ممکن است چندین دلیل داشته باشد. اگر مبتدی باشید ممکن است با دیدن این خطا بترسید اما اینطور نیست، این مشکل همانند مشکلات دیگر در مدت بسیار کم قابلحل است. با ما همراه باشید.
حل مشکل خطا در برقراری ارتباط با پایگاه داده
نکته: قبل از انجام هرکاری مطمئن شوید نسخۀ پیشتیبان را بهدرستی تهیه کردهاید.
چرا این خطا رخ میدهد؟
برای بیان دلیل رخداد این خطا بهطور ساده و خلاصه، وقت هایی است که وردپرس قادر به استقرار اتصالات پایگاهداده نیست. دلایل متعددی میتواند باعث پیدایش این خطا شود. ممکن است پایگاهداده از پاسخگویی ناتوان شده باشد، شاید خراب شده است و نیازمند بررسی باشد. و ممکن است دلایل دیگری داشته باشد که در ادامه بیشتر به آنها میپردازیم.
این خطا برای wp-admin هم رخ میدهد؟
اولین چیزی که باید به آن توجه داشته باشید این است که باید مطمئن شوید خطا در قسمت روی برنامه یا پشت برنامه wp-admin رخ میدهد. اگر متن خطا در هر دو صفحه یکسان باشد ” Error establishing a database connection ” در قدم بعدی برای رفع آن با ما همراه باشید. اگر خطا در 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’ ” اضافه کنید.
[php]define('WP_ALLOW_REPAIR', true);[/php]
وقتی این کار را انجام دادید به صفحۀ تنظیمات بروید یا از این آدرس استفاده کنید:
http://www.yoursite.com/wp-admin/maint/repair.php
و Repair database را بزنید و سپس Repair and optimizing database را بزنید. بخاطر داشته باشید وقتی این خط کد را بنویسید به دلیل اینکه پایگاهداده خراب است، معمولأ کاربران نمیتوانند به سایت لاگین کنند. پس بعد از اتمام کار فراموش نکنید تا این خط کد را از wp-config.php پاک کنید تا روال عادی سایت صورت گیرد. اگر این کار را انجام دادید و مشکل رفع نشد، یا نتوانستید عملیات ترمیم را اجرا کنید، ادامۀ مطلب را بخوانید تا موارد دیگر را بررسی کنید.
بررسی فایل WP-Config
wp-config.php تقریبا مهمترین فایل در نصب وردپرس شما به شمار میرود. در این فایل سایت شما به پایگاهدادهتان متصل خواهد شد. اگر رمز عبور ریشه یا پایگاهدادۀ خود را تغییر دهید باید این فایل را نیز تغییر دهید. اولین چیزی که باید بررسی کنید این است که ببینید همه چیز در فایل wp-config.php مثل هم باشد.
[php]define('DB_NAME', 'database-name'); define('DB_USER', 'database-username'); define('DB_PASSWORD', 'database-password'); define('DB_HOST', 'localhost');[/php]
بخاطر داشته باشید مقدار DB_Host همیشه localhostنیست. باتوجه به میزبان مقدارش متغییر خواهد بود. بعضی از افراد میگویند مشکلاتی که در این باب پیش میآید را اینگونه رفع میکنیم که بجای ‘localhost’ مقدار IP را قرار میدهند.
[php]define('DB_HOST', '127.0.0.1:8889');[/php]
آی پیها نیز با توجه به میزبانان خدمات آنلاین متفاوتاند. اگر همه چیز در این فایل درست باشد و باز مشکلات رفع نشده باشد میتوان گفت مشکل از سرور است.
میزبان وب خود را بررسی کنید (Web Host (MySQL Server))
گاهی اوقات که با این خطا روبهرو میشوید، ممکن است بخاطر بار ترافیک سایت باشد. یعنی در آن لحظه چندین نفر همزمان درخواست دادهاند و سایت هنگ کرده است. درچنین مواقعی باید گفت میزان بار قابل کنترل توسط میزبان نیست و بهتر است چند دقیقه بعد تلاش کنید و یا از پشتیبان سوال کنید.
افرادی که میخواهند بدانند MySQL سرور به خودی خود در حال اجراست، باید مراحل زیر را دنبال کنند. سایتهای دیگری که روی آن سرور درحال خدمت رسانی هستند را بررسی کنند، که ببینند این مشکل را دارند یا خیر. اگر آنها هم چنین خطایی داد پس قطعا مشکل از MySQL server میباشد. اگر سایت دیگری روی سرور ندارید به cPanel بروید و وارد phpMyAdmin شده و به پایگاهداده متصل شوید. اگر توانستید متصل شوید، باید اجازۀ دسترسی لازم را به کاربر داده شده باشد. فایل جدیدی ایجاد کنید با نام testconnection.php و کدهای زیر را در آن الصاق کنید.
[php]<?php $link = mysql_connect('localhost', 'root', 'password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>[/php]
فراموش نکنید نام کاربری و رمزعبور را جایگزین کنید. اگر با موفقیت متصل شد به این معناست که کاربر اجازۀ دسترسی مناسبی دارد و مشکل از جای دیگری است. به فایل wp-config برگردید و بررسی کنید همه چیز درست باشد. اگر نتوانستید از طریق phpMyAdmin به پایگاهداده متصل شوید، بنابراین مشکل از سرور شماست. بعضی وقتا به منزلۀ خراب بودن MySQL server نیست و فقط کاربر اجازۀ دسترسی لازم رو ندارد.
اگر در نظر بگیریم MySQL server سالم باشد و در حال اجرا، و همۀ سرورها درحال کار باشند بغیر از دامنه سایت شما ، وقتی بخواهیم به phpMyAdmin وارد شویم با این خطا مواجه خواهیم شد:
[php]UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'[/php]
پس لازم است با پشتیبان تماس بگیریم تا مشکلاتمان را سریعأ ریشهیابی و حل کنند و اگر مشکلی با اتصال به phpMyAdmin داشته باشید یا مشکلی در نتایج testconnection.php داشته باشید، باید از پشتیبانها بخواهید تا مشکلتان را رفع کنند.
منبع: wpbeginner