در این مقاله قصد داریم روش های رفع خطای اتصال به پایگاه داده یا error establishing a database connection در وردپرس را توضیح دهیم.
بروز این خطا دلایل گوناگون داشته که به علت عدم برقراری ارتباط پایگاه داده و فایل های وردپرسی میباشد. روش های مختلفی برای رفع این خطا وجود دارد که در ادامه با آن آشنا خواهیم شد.
آموزش رفع خطای اتصال به پایگاه داده وردپرس
همانطور که گفته شد دلیل نمایش این خطا ، عدم برقراری ارتباط فایل های وردپرس با پایگاه داده میباشد که در نتیجه اطلاعات وب سایت نمایش داده نخواهند شد.
دلایل متفاوتی میتواند منجر به ایجاد این خطا شود:
• حذف کلی دیتابیس سایت
• تغییر در اطلاعات دیتابیس و اشتباه بودن اطلاعات در فایل wp-config.php
• ایجاد خطا هنگام تغییر پیشوند جداول وردپرس
• تغییر سطح دسترسی فایلهای وردپرس
• بروز خطا هنگام انتقال وردپرس به دامنه و یا هاست جدید
• وجود مشکل در سرور
• و…
توجه کنید که پیش از انجام هر کاری ابتدا از تمامی فایل های و دیتابیس وب سایت خود یک نسخه پشتیبان تهیه نمایید.
بررسی اطلاعات دیتابیس وردپرس
در ابتدا باید بررسی کنیم که مشخصات دیتابیس مانند نام ، یوزر و پسورد یوزر دیتابیس در فایل wp-config.php به درستی وارد شده باشد. جهت بررسی این موضوع ، ابتدا وارد کنترل پنل هاست شده و سپس وارد بخش File Manager هاست میشویم. سپس به مسیر وردپرس نصب شده رفته و فایل wp-config.php را باز میکنیم. در این فایل مشخصات دیتابیس قرار داده میشود که جهت ارتباط با پایگاه داده 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 بسازید و کد زیر را درون فایل مورد نظر قرار داده و ذخیره کنید.
<?php
$link = mysql_connect('your_hostname', 'database_username', 'database_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
حال اطلاعات موجود در فایل را به شکل زیر وارد کنید:
• 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 قرار دارند دارای سطح دسترسی زیر باشند.
سطح دسترسی برای فایلهای وردپرس معادل ۶۴۴ باشد.
سطح دسترسی برای پوشههای وردپرس معادل ۷۵۵ باشد.
جهت کسب اطلاعات بیشتر در این زمینه آموزش نحوه تغییر سطح دسترسی فایل ها و پوشه ها در سی پنل را مشاهده کنید، حالا تمامی پوشهها و فایلهای وردپرس را بررسی کنید تا دارای چنین سطح دسترسی باشند. میتونید آخرین نسخه از وردپرس را هم دانلود کرده و بعد از اینکه فایل wp-config.php و پوشه wp-content را از درون اون حذف کردید در همین مسیر آپلود کنید تا با فایل ها و پوشههای فعلی جایگزین شود. درست مشابه همون چیزی که در مقاله آموزش بهروزرسانی وردپرس در بخش آپدیت دستی وردپرس به اون پرداختیم.
توجه داشته باشید که پوشه wp-content و فایل wp-config.php به هیچ عنوان نباید بازنویسی و جایگزین شده و از دست بروند. انجام این کار میتواند منجر به از دست دادن اطلاعات سایت شما شود. بنابراین این کار را با دقت کامل انجام دهید.
تعمیر پایگاه داده وردپرس
پس از انجام تمامی مراحل فوق در صورتیکه مشکل شما رفع نشده است ، باید دیتابیس خود را ریپیر نمایید.بنابراین ابتدا فایل wp-config.php را باز کرده و قطعه کد زیر را در مکان مناسبی از اون قرار بدین.
define( 'WP_ALLOW_REPAIR', true );
سپس تغییرات را با ذخیره کردن فایل اعمال کرده و سپس آدرس سایتتون را مشابه نمونه زیر وارد کنید. دقت کنید که به جایsite.com از نام دامنه خودتون استفاده کنید.
http://your-site.com/wp-admin/maint/repair.php
حال بر روی گزینه تعمیر پایگاه داده کلیک کرده و منتظر شوید تا عملیات ریپیر دیتابیس صورت گرفته و به انتها برسد. بعد از اینکه عملیات تعمیر دیتابیس انجام گرفت مجددا به فایل wp-config.php برگردید و کدی که برای استفاده از حالت تعمیر وردپرس به اون اضافه کردید را ازش برداشته و فایل را ذخیره کنید، حالا مجددا سایت رو باز کنید و چندین بار رفرش کنید تا ببینید مشکل برطرف شده است یا خیر،