Error Establishing a Database Connection عدم اتصال به پایگاه داده
راه اندازی وبسایت وردپرسی با خرید سرور مجازی هاستینگ، آپلود فایل های وبسایت و ایجاد پایگاه داده مربوط به داده ها و محتوای موردنیاز برای صفحات وبسایت شروع می شود. حالا اگر ارتباط بین این فایل ها و پایگاه داده به مشکل بربخورد، خطای Error Establishing a Database Connection اتفاق می افتد.
خطای Error Establishing a Database Connection به معنی این است که فایل های وبسایت شما که در وب سرور قرار دارند، نمی توانند به پایگاه داده وبسایت شما متصل شوند و همین خطا از دسترسی به سایت جلوگیری می کند. خوشبختانه این خطا هم مثل اکثر خطاهای وردپرسی، قابل حل است و با استفاده از راهکارهای ارائه شده در مقاله، به سرعت می توانید نسبت به حل آن اقدام کنید.
عدم اتصال به پایگاه داده، یکی از رایج ترین خطاهایی است که نیاز به عیب یابی سریع دارد چون اگر در حل این خطا سهل انگاری کنید، وبسایت شما از دسترس کاربران خارج می شود و این هم مستقیماً روی ترافیک، اعتبار و همچنین رتبه بندی سئو شما تاثیر دارد.
نیازی به نگرانی نیست. اگر شما هم مثل اکثر کاربران وردپرس با مشکل عدم اتصال به پایگاه داده مواجه شده اید و نمی دانید باید چه کار کنید، ما در کنار شما هستیم تا این پروسه استرس زا را به راحتی پشت سر بگذارید.
پس اگر وبسایت خود را باز کرده اید و چند دقیقه است که به صفحه خالی حاوی خطای Error Establishing a Database Connection خیره شده اید، خبرهای خوبی برای شما داریم. کافیست راهکارهای زیر را با اشتیاق کامل امتحان کنید تا دوباره وبسایت را به وضعیت ایده آل خود برسانید:
خطای Error Establishing a Database Connection چیست؟
همانطورکه می دانید سایت شما از فایل های تشکیل شده است که هر کدام نقش خاصی در ساختار سایت دارند. از طرف دیگر، تمام اطلاعات سایت وردپرسی شما مثل داده های پست ها، داده های صفحات، اطلاعات متا، تنظیمات پلاگین، اطلاعات ورود و … در پایگاه داده ذخیره می شوند.
وردپرس با استفاده از زبان php نوشته شده است و به عنوان سیستم مدیریت پایگاه داده از Mysql استفاده می کند. به این ترتیب، وقتی شخصی از صفحه وبسایت شما بازدید می کند، کدهای PHP صفحه موردنظر اجرا می شوند تا اطلاعات موردنیاز را از پایگاه داده Mysql بازیابی کنند و در صفحه موردنظر به کاربر نشان دهند.
اگر این پروسه به درستی طی نشود یعنی ارتباط بین کد php و پایگاه داده به مشکل بخورد، هیچ داده و اطلاعاتی وجود ندارد که در صفحه بارگذاری شود و به کاربر نمایش داده شود. اینجاست که کاربر به جای محتوای صفحه با پیام error establishing a database connection و خطا در برقراری ارتباط با پایگاه داده مواجه می شود.
این خطا نه تنها جلوی دسترسی کاربران به وبسایت را می گیرد، بلکه از دسترسی شما به داشبورد وردپرس هم جلوگیری می کند.
دلایل عدم اتصال به پایگاه داده
با اینکه دلیل اصلی ارور error establishing a database connection، اختلال در ارتباط بین فایل ها و پایگاه داده است ولی این یک نگاه کلی است. برای اینکه دلیل اصلی را شناسایی کنید و به دنبال راهکارهای آن بگردید، اول باید به جزئيات دقت کنید تا یک سرنخ از مشکل عدم اتصال به دیتابیس پیدا کنید. بیایید با چند مورد از این دلایل آشنا شویم:
- استفاده از اعتبارنامه نادرست مثل نام کاربری و رمز کاربر پایگاه داده، نام هاست پایگاه داده و اسم پایگاه داده اشتباه در فایل پیکربندی
- محدودیت امتیازات دسترسی کاربر پایگاه داده
- خرابی پایگاه داده به دلایلی مثل نصب یک پلاگین مخرب یا حذف بعضی از جدول های پایگاه داده
- افزایش بار سرور پایگاه داده و عدم امکان پاسخ گویی به تمام درخواست ها
- خاموش یا غیرفعال بودن سرویس پایگاه داده
- خرابی جدول های پایگاه داده به خاطر نصب/حذف یک افزونه یا اجرای برخی از عملیات MySQL
- خرابی فایل های وردپرس به خاطر حملات هکری و بدافزارها، آپدیت ناموفق یا انتقال ناقص فایل
- بروز مشکل در بخش هاستینگ
این ها جزو اصلی ترین دلایلی هستند که می توانند از اتصال فایل ها به پایگاه داده جلوگیری کنند. خوشبختانه هر کدام از آنها، راهکارهای خاص خود را دارند که در ادامه به همه آنها اشاره می کنیم.
۱) درستی اطلاعات اعتبارنامه پایگاه داده را بررسی کنید.
فایل های PHP وبسایت برای دسترسی به اطلاعات پایگاه داده نیاز به اعتبارنامه کاربر پایگاه داده دارند. این اعتبارنامه شامل نام کاربری، رمز، هاست دیتابیس و اسم پایگاه داده است که در فایل پیکربندی wp-config.php ذخیره می شود. حالا اگر هر یک از موارد نادرست باشد، وردپرس نمی تواند به سرور پایگاه داده متصل شود و همین باعث بروز خطای error establishing a database connection می شود.
انتقال سایت به سرور جدید از مهم ترین دلایل تغییر اعتبارنامه ورود به دیتابیس است که برای حل این مسئله، اول باید به پنل هاستینگ جدید خود مراجعه کنید. مثلاً اگر از سی پنل استفاده می کنید، از بخش databases روی mysql@databases کلیک کنید تا دیتابیس های وبسایت خود را ببینید.
بعد اسم پایگاه داده و نام و رمز کاربری که به آن دسترسی دارد را پیدا کنید.
سپس، فایل wp-config.php وبسایت را هم باز کنید و اطلاعات مربوط به پایگاه داده را بررسی کنید.
// ** 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' );
اگر این اطلاعات با اطلاعاتی که از طریق هاستینگ مشاهده کردید، مطابقت دارند که دیگر نیازی به هیچگونه تغییر نیست. اگر این اطلاعات مثلاً اسم پایگاه داده با اسم پایگاه داده موجود در mysql@databases فرق دارد، باید آن را تغییر دهید.
DB_HOST هم محل قرارگیری اسم هاست است که در اکثر مواقع همان localhost یا 127.0.0.1 است ولی برخی از میزبان های وب به جای localhost از یک آدرس آی پی یا url متفاوت استفاده می کنند. بهتر است محض احتیاط با هاستینگ خود تماس بگیرید تا از این قضیه مطمئن شوید.
البته، اگر می خواهید از دسترسی به پایگاه داده با اعتبارنامه ورودی موردنظر مطمئن شوید، می توانید از یک راهکار کاربردی برای بررسی وضعیت دسترسی به سرور دیتابیس استفاده کنید:
برای این کار کافیست در دایرکتوری روت وبسایت خود یک فایل php به اسم new-database-file.php ایجاد کنید.
سپس، کد زیر را در آن کپی کنید.
<?php
$link = mysql_connect('localhost', 'user', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Success establishing database connection';
mysql_close($link);
?>
اسم و رمز کاربر را بر اساس اطلاعات کاربر موردنظر تغییر دهید.
سپس این فایل در آدرس سایت خود لحاظ کنید و آن را توسط مرورگر تست کنید. ( your-site-domain.com را با آدرس دامنه یا سایت خود جایگزین کنید)
http://your-site-domain.com/new-database-file.php
اگر نام کاربری و رمز درست باشند و اتصال به پایگاه داده به درستی انجام شده باشد، با پیام زیر مواجه خواهید شد:
اگر اطلاعات ورود به دیتابیس درست نباشند، با پیام زیر مواجه خواهید شد:
که در این صورت بهتر است یک کاربر دیگر که به پایگاه داده دسترسی دارد را انتخاب کنید و اطلاعات آن را در فایل پیکربندی لحاظ کنید یا اینکه یک کاربر دیتابیس جدید ایجاد کنید و بعد از ارائه امتیازات لازم و اتصال آن به دیتابیس موردنظر، اطلاعات مربوط به آن کاربر را در فایل wp-config.php قرار دهید. برای آموزش نحوه ایجاد کاربر پایگاه داده می توانید از مقاله ایجاد دیتابیس در سی پنل کمک بگیرید.
۲) پایگاه داده وردپرس را تعمیر کنید.
بعضی مواقع خراب بودن پایگاه داده وردپرس هم می تواند باعث بروز مشکل عدم اتصال به دیتابیس شود. حذف یا اضافه شدن بعضی از جداول پایگاه داده توسط افزونه ها یا تم های جدید یکی از دلایل اصلی خرابی پایگاه داده است.
پس اگر داشبورد سایت وردپرس خود را باز کرده اید و به خطای زیر مواجه شده اید، احتمالاً ریشه مشکل پیدا کرده اید:
“One or more database tables are unavailable. The database may need to be repaired.”
با دیدن این خطا، فوراً باید نسبت به خطایابی و تعمیر پایگاه داده وبسایت خود اقدام کنید.
برای این کار کافیست فایل پیکربندی wp-config.php را باز کنید و خط زیر را به انتهای آن اضافه کرده و ذخیره کنید:
define('WP_ALLOW_REPAIR', true);
حالا وقت آن است که از این ابزار خطایابی استفاده کنید. پس یک تب جدید در مرورگر باز کنید و آدرس زیر را وارد کنید:
http://your-site-domain.com/wp-admin/maint/repair.php
با مراجعه به آدرس بالا، صفحه زیر باز می شود:
کافیست روی یکی از دکمه های Repair Database یا Repair and Optimize Database کلیک کنید تا پروسه خطایابی و تعمیر پایگاه داده شروع شود.
بعد، بررسی کنید که سایت وردپرس شما به حالت نرمال خود برگشته است یا نه. بعد از اینکه این روش را امتحان کردید، نتیجه (مثبت یا منفی) آن را دیدید، حتماً باید فایل پیکربندی را باز کنید و خط جدیدی که به آن اضافه کردید را حذف کنید تا کاربران دیگر نتوانند بدون نیاز به اطلاعات ورود به صفحه تعمیر پایگاه داده وبسایت شما دسترسی داشته باشند.
۳) فایل های اصلی وردپرس را ریلود کنید.
خراب بودن فایل های اصلی وردپرس هم می تواند دلیلی برای عدم اتصال به پایگاه داده باشد. وجود خطا در کدهای وردپرس، حمله هکری یا خرابی یک افزونه یا تم می تواند ارتباط بین پایگاه داده و وبسایت را قطع کند.
برای اینکه مطمئن شوید، ارور error establishing a database connection به این قضیه مربوط می شود یا نه، بهترین کار این است که یک نسخه جدید از وردپرس را در سایت خود آپلود کنید.
با اینکه این روش کاری با محتوای وبسایت شما ندارد و فقط خود وردپرس را آپدیت می کند ولی بهتر است قبل از این کار از فایل های وردپرس خود بکاپ بگیرید تا هرگونه تغییر در فایل هایی مثل htaccess. یا wp-config.php قابل بازیابی باشند.
اگر مراحلی که در ادامه بررسی می کنیم را طی کنید، محتوا و افزونه های وبسایت شما تحت تاثیر قرار نمی گیرد.
به سایت وردپرس بروید و آخرین نسخه آن را دانلود کنید.
سپس، فایلی که دانلود کردید را از حالت فشرده خارج کنید و پوشه wp-content و wp-config-sample.php را از آن حذف کنید.
فایل های باقیمانده را از طریق سی پنل یا فایل زیلا در سایت وردپرس آپلود کنید و موقع مواجه شدن با پیام تکراری بودن فایل ها هم، گزینه Overwrite duplicate files را انتخاب کنید تا فایل های خراب وردپرس با فایل های جدید و سالم جایگزین شوند.
توصیه می کنیم که بعد از این کار، کش مرورگر را پاک کنید.
سپس، عملکرد سایت خود را تست کنید. اگر مشکل عدم اتصال به دیتابیس از فایل های خراب وردپرس ناشی می شود، انتظار می رود که با این راهکار موفق به حل مشکل شوید.
4) پلاگین ها و تم های مخرب را شناسایی و حذف کنید.
با اینکه تنوع زیاد در پلاگین ها و افزونه ها از مهم ترین نقاط قوت وردپرس است ولی بعضی مواقع، نصب یک افزونه مخرب می تواند شروع برای تمام ضعف های سایت وردپرسی شما باشد. متاسفانه، اضافه کردن بعضی از پلاگین ها و کدهای مخرب به محتوای سایت می تواند باعث بروز درگیری، خطا و رفتارهای عجیب دیگری باشد که مشکل عدم برقراری ارتباط با پایگاه داده، یکی از آنهاست.
برای اینکه متوجه شوید این مشکل از افزونه ها یا پلاگین ها ناشی می شود، یک راهکار ساده برای شما داریم.
کافیست با استفاده از filezilla یا هر کلاینت ftp که استفاده می کنید، فایل های وبسایت خود را باز کنید و فولدر plugins را پیدا کنید.
بعد روی آن راست کلیک کنید و گزینه rename را انتخاب کنید و اسم آن پوشه را تغییر دهید.
با این کار، همه افزونه های وبسایت شما به صورت همزمان و یکجا غیر فعال می شود و اکنون می توانید عملکرد سایت را بدون تداخل هیچ افزونه ای تست کنید و ببینید که مشکل وصل نشدن به پایگاه داده از افزونه ها ناشی می شود یا نه. اگر دیدید که مشکل با موفقیت حل شده است، پس وقت آن است که افزونه مخرب را شناسایی کنید.
برای این کار کافیست اسم فولدر افزونه ها را به همان plugins تغییر دهید و اسم تک تک افزونه های موجود در آن پوشه را یکی یکی تغییر دهید تا ببینید غیرفعال بودن کدام یک از آنها باعث حل خطای error establishing a database connection می شود. اینگونه است می توانید افزونه مخرب را شناسایی و حذف کنید تا وبسایت شما به درستی کار کند.
5) فضای ذخیره سازی پایگاه داده را بررسی کنید.
اگر پایگاه داده از فضای ذخیره سازی کافی برای اجرای تسک های موردنظر برخوردار نباشد، مشکلات زیادی در عملکرد پایگاه داده به وجود می آید که ارور error establishing a database connection یکی از آنهاست. ناتوانی در ذخیره سازی داده ها، عدم اجرای تراکنش ها و افزایش زمان پاسخ دهی پایگاه داده از جمله مسائلی هستند که می توانند باعث عدم اتصال به دیتابیس شوند.
برای اینکه فضای کافی را برای پایگاه داده فراهم کنید، داده های غیرضروری مثل لاگ های قدیمی و جداول زائد را حذف کنید. اگر هم با تمام تمیزکاری ها و پیشگیری های جلوگیری از پر شدن دوباره فضا، باز هم با این مشکل مواجه هستید، شاید وقت آن است که نسبت به ارتقا فضای ذخیره سازی هاست اقدام کنید.
6) بکاپ سایت خود را بازیابی کنید.
همانطورکه آپدیت فایل های وردپرس، یک ایده عالی برای حل مشکل اتصال به دیتابیس است، بازیابی فایل های بکاپ وردپرس هم راهکار موثری برای حل این مشکل باشد. در واقع، شما می خواهید از شر تغییراتی که الان در وردپرس اتفاق افتاده است، خلاص شوید و بازیابی حالتی که در آن همه چیز مرتب بود، می تواند کلید رهایی شما باشد.
البته، به شرطی که قبلاً که در آن حالت سالم و بدون خطا قرار داشتید، از سایت خود بکاپ گرفته باشید و الان هم برای بازیابی از آن استفاده کنید.
بسیاری از هاست ها بخش های خاصی را برای بکاپ گیری و بازیابی در نظرگرفته اند ولی در صورت تمایل می توانید از آموزش پشتیبان گیری و بازیابی فایل ها با سی پنل کمک بگیرید.
توجه داشته باشید که شاید ممکن است لازم باشد هم بکاپ پایگاه داده و هم فایل های بکاپ وبسایت بازیابی کنید.
7) خطاهای سرور را بررسی کنید.
اگر امتحان کردن راهکارهای بالا، کمکی به حل مشکل عدم اتصال به دیتابیس نکرد. شاید وقت آن است که خطاهای سرور را بررسی کنید تا سرنخ های دقیق تری در مورد دلیل مشکل پیدا کنید.
منابع زیادی وجود دارند که با مراجعه به آنها می توانید مشکل را کشف کنید. /var/log/mysql/error.log و /var/lib/mysql/db-name/hostname.err از فایل هایی هستند که در صورت داشتن دسترسی مدیریتی می توانید مشکل مرتبط با خطای error establishing a database connection را شناسایی و رفع کنید.
همچنین سعی کنید با استفاده از دستوراتی مثل دستور زیر و بررسی فایل های پیکربندی پایگاه داده، تنظیماتی مثل حداکثر اتصال همزمان را به درستی تنظیم کنید تا عملکرد پایگاه داده را به خاطر تنظیمات نادرست محدود نکنید:
SHOW VARIABLES LIKE 'max_connections';
8) با پشتیبان هاستینگ تماس بگیرید.
تا الان تمام تلاش خود را به کار بردید تا مشکل عدم اتصال به پایگاه داده را خودتان حل کنید ولی اگر با امتحان این روش ها باز هم به نتیجه نرسیدید، وقت آن است که با تیم پشتیبانی هاستینگ تماس بگیرید تا در صورت نیاز خودشان مشکل را برطرف کنند یا اینکه راهنمایی های لازم برای حل مشکل عدم اتصال به پایگاه داده را در اختیار شما قرار دهند.
۳ نکته برای جلوگیری از بروز مشکل عدم اتصال به پایگاه داده در آینده
اگر بتوانید کارهای مدیریتی وبسایت خود را با یک رویکرد آگاهانه جلو ببرید و از آن در برابر تهدیدات و خطاها جلوگیری کنید، احتمال روبرو شدن با مشکلاتی مثل عدم اتصال به پایگاه داده کمتر می شود. پس سعی کنید راهکارهای زیر را وارد عمل کنید:
۱. فایل ها و پیکربندی های وبسایت خود را به طور منظم بررسی کنید.
انجام یک سری بررسی ها به صورت منظم برای اطمینان از تنظیمات درست وبسایت ضروری است. همچنین، بهتر است اطلاعات احراز هویت پایگاه داده ای که وردپرس با آن ارتباط برقرار می کند را آپدیت نگه دارید.
فراموش نکنید که هر تغییری که در اطلاعات اعتبارنامه کاربر پایگاه داده ایجاد می کنید را در فایل wp-config.php هم اعمال کنید تا تناقضی بین آنها وجود نداشته باشد.
۲) با یک ارائه دهنده هاستینگ معتبر همکاری کنید.
برای اینکه وبسایت وردپرسی شما از حداکثر پتانسیل خود برای ارائه یک عملکرد عالی بهره ببرد، نیاز به یک سرور یا هاست قدرتمند و مقیاس پذیر دارید که آپتایم بالایی داشته باشد و به خوبی از عهده کنترل ترافیک بربیاید. پس سعی کنید نیازهای خود را در نظر بگیرید و سپس بر اساس انتظارات و نیازهای خود، یک ارائه دهنده هاستینگ معتبر و کاربلد را انتخاب کنید. اگر در این زمینه سردرگم هستید و نمی دانید باید از کجا شروع کنید، می توانید به آسام سرور اعتماد کنید و با مراجعه به صفحه خرید سرور مجازی هاستینگ، یک شروع قدرتمند برای خود رقم بزنید.
۳) به فکر امنیت وبسایت خود باشید.
امنیت یکی از مهم ترین جنبه های راه اندازی یک کسب و کار آنلاین است و خطاهایی مثل error establishing a database connection می توانند ناشی از حملاتی مثل ddos باشند که در اثر امنیت ضعیف وبسایت اتفاق افتاده اند. به عنوان مثال، اگر وبسایت وردپرسی شما هک شود، هکرها می توانند به پایگاه داده شما دسترسی پیدا کنند و با اضافه کردن کاربران ادمین جدید، کسب و کار شما را خراب کنند.
پس با پیاده سازی راهکارهای افزایش امنیت سرور، مقاومت وبسایت خود را در برابر هر نوع حمله ای به حداکثر برسانید و هیچ روزنه ای برای نفوذ هکرها باقی نگذارید.
سخن آخر
ارور error establishing a database connection یکی از رایج ترین خطاهای وردپرسی است که در اثر قطع ارتباط بین فایل های وبسایت و پایگاه داده اتفاق می افتد. تصحیح اطلاعات اعتبارنامه کاربری و استفاده از ابزار داخلی تعمیر پایگاه داده از برجسته ترین روش های حل این خطا هستند ولی در صورت نیاز، همه راهکارهای بالا را امتحان کنید و بعد اگر به نتیجه دلخواه نرسیدید، با بخش پشتیبانی ارائه دهنده هاستینگ تماس بگیرید تا اقدامات لازم برای حل مشکل را انجام دهند.
از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.