اگر مدیر یک سایت وردپرسی هستید مشاهده پیغام خطای “Error establishing a database connection” تعریف یک روز بد است. در این مطلب از وبلاگ پارس وی دی اس، آموزش گام به گام حل مشکل خطا در برقراری اتصال پایگاه داده را برای کاربران وردپرسی توضیح میدهیم. در ادامه با ما همراه باشید.
قبول کنید، این پیغام خطا بسیار جدی به نظر میرسد. هیچ چیزی در صفحه وجود ندارد، هیچ بخش آشنای سایت وردپرس وجود ندارد، فقط این متن وجود دارد:
قبل از هر چیز، آرامش خود را حفظ کنید، میدانیم که احتمالاً کمی ترسیدهاید، اما اطمینان میدهیم که میتوان این مشکل را برطرف کرد و از هرگونه آسیب دائمی جلوگیری کرد. در واقع، خطای ایجاد اتصال پایگاه داده بسیار رایج است.
Error establishing a database connection چیست؟
وردپرس از دو بخش اصلی تشکیل شده است تا تمام توانایی های خود را در اختیار شما قرار دهد: PHP و MySQL.
- PHP: یک زبان برنامه نویسی است. وردپرس ( فایل های اصلی وردپرس ) به زبان PHP نوشته شده است.
- MySQL: یک نوع پایگاه داده است. وردپرس از یک پایگاه داده MySQL برای ذخیره تمام محتوای وب سایت شما استفاده می کند که شامل پستها، صفحات، و همچنین عناصر کوچکتر، مانند عنوان سایت، چیدمان ابزارک ها، تنظیمات رنگ و غیره میشود. اصولاً پایگاه داده MySQL جایی است که هر اطلاعاتی، حتی کوچکترین اطلاعات در مورد سایت در آن وجود دار و نگهداری می شود.
با کنار هم قرار دادن این دو، وردپرس از دستورات PHP برای اتصال به پایگاه داده MySQL، دریافت اطلاعات مورد نیاز و سپس نمایش اطلاعات بر روی مرورگ استفاده می کند.
اینجاست که مشکل به وجود میآید. این خطا زمانی رخ می دهد که به هر دلیلی وردپرس نتواند از طریق دستورات PHP به اطلاعات موجود در پایگاه داده دسترسی پیدا کند. وقتی این اتفاق میافتد، وردپرس اساساً نمیداند چه کاری باید انجام دهد، بنابراین تنها چیزی که میتواند بگوید این است: “خطا در ایجاد اتصال پایگاه داده” یا “Error establishing a database connection.”
با توجه به آنچه گفته شد، دلایل متعددی برای رخ دادن خطا وجود دارد. برخی از موارد رایج تر:
- اعتبارنامه ورود نادرست وردپرس: برای دسترسی به پایگاه داده نیاز به یک لاگین و رمز عبور خاص دارد. اگر اینها به هر دلیلی تغییر کرده باشند، وردپرس دیگر نمی تواند چیزی را از پایگاه داده دریافت کند.
- فایل های وردپرس خراب شده: فایلهای اصلی وردپرس میتوانند در نتیجه بهروزرسانی ناموفق، از جمله موارد دیگر، خراب شوند که میتواند شامل مواردی مانند بهروزرسانی ناموفق افزونهها، طرحهای زمینه و حتی بهروزرسانیهای اصلی نرمافزار وردپرس باشد.
- پایگاه داده خراب: این ممکن است نتیجه یک پلاگین سرکش باشد که پایگاه داده را به طور داخلی خراب کرده است، حمله هکرها، یک موضوع شکست خورده و بسیاری موارد دیگر.
- سرور پایگاه داده از کار افتاده است: در برخی موارد، وب سرور (سروری که فایل های وب سایت شما را ذخیره می کند) بر روی دستگاهی متفاوت از پایگاه داده اجرا می شود. و آن سرور پایگاه داده جداگانه می تواند به هر دلیلی از کار بیفتد.
ترافیک بیش از حد: اگرچه این مشکل خوبی است، اما همچنان یک مشکل است. به طور خاص، پایگاه داده شما ممکن است به دلیل افزایش شدید ترافیک، پاسخگو نباشد. برای مثال، شاید یکی از پستهای شما ویروسی شده باشد و اکنون همه و سگشان سعی میکنند به سایت شما دسترسی پیدا کنند؟ بنابراین سرور قادر به انجام بخشی از این بازدیدها نیست.
آموزش رفع خطای “Error Establishing a Database Connection”
از آنجایی که برای وقت شما ارزش قائل هستیم، ابتدا راهی را پیشنهاد می کنیم که به احتمال زیاد مشکل را به سرعت برطرف میکند. سپس، عمیقتر میشویم و به شما نشان میدهیم که چگونه همه اصلاحات را بهصورت دستی انجام دهید.
1- مرحله اول: با هاستینگ خود تماس بگیرید.
تماس با پشتیبانی میزبان سایت همیشه ایده خوبی است. میتوان اینجور فرض کرد که اگر سایت شما فقط یک دقیقه پیش (یا یک روز پیش) کار میکرد و اکنون اینطور با مشکل روبرو شده است، ممکن است اشکال از طرف میزبان وب شما باشد.
همه هاستینگهای معتبر این روزها پشتیبانی چت آنلاین را ارائه میدهند.
از طریق چت آنلاین مشکل را با آنها در میان بگذارید، بگویید که با “خطا در برقراری اتصال پایگاه داده” مواجه شدهاید، البته اگر جز موارد زیر باشد:
- اگر سرور پایگاه داده بدون مشکل راه اندازی و اجرا می شود.
- اگر در حال حاضر هیچ افزایش ترافیکی روی سرورتان نداشته اید.
در بیشتر موارد، اگر به آنها بگویید چه نوع مشکلی دارید، آنها یا به شما علت دقیق را میگویند یا آن را برای شما برطرف میکنند.
مهمتر از همه، آنها به شما اطلاع میدهند که آیا پایگاه داده شما درست است و آیا فعالیت مشکوکی در سرور وجود دارد یا خیر.
اگر خطا در آنها نیست (سرور در حال کار است و هیچ افزایش ترافیکی وجود ندارد)، و آنها نمی خواهند به شما کمک کنند، به مرحله 2 بروید:
مرحله 2: بررسی خراب بودن قالب یا افزونه ها
فایل های وردپرس ممکن است در نتیجه چند مشکل ناگوار خراب شوند. به عنوان مثال، ممکن است یک افزونه یا یک طرح پس زمینه را تغییر داده باشید، و همه چیز خراب شده باشد. شاید شما سایت را به یک سرویس خارجی متصل کرده اید. و یا شاید برخی از فایل ها را به صورت دستی ویرایش کرده اید
اگر هر یک از موارد بالا باشد، احتمالاً خود شما مقصر هستید. اگر هیچ کدام از این کارها را انجام نداده اید، این مرحله را رد کنید.
میتوانید این کار را انجام دهید:
- از طریق FTP به هاست خود متصل شوید. شما می توانید این کار را با یک ابزار رایگان به نام FileZilla انجام دهید.
برای اتصال، به یک ورود به سیستم و یک رمز عبور برای حساب FTP خود نیاز دارید. اگر نمیدانید کجا هستند، سادهترین راه برای دریافت آنها جستجو در ایمیلهای اولیهای است که هنگام ثبتنام از هاستینگ خود دریافت کردهاید. از طرف دیگر، میتوانید از پشتیبانی چت انلاین بخواهید این اطلاعات را به شما بدهد.
با داشتن این ها، به سرور متصل شوید و به پوشه ROOT وردپرس بروید. معمولاً “public_html” یا “www” نامیده میشود یا ممکن است پس از ایجاد اتصال FTP در آن باشید.
اگر میتوانید پوشههای فرعی مانند «wp-content» و «wp-admin» را ببینید، پس در ریشه وردپرس هستید. مثل تصویر زیر:
- به «wp-content» بروید و پوشه «plugins» را به چیز دیگری تغییر نام دهید ( بجز plugins )
- به سایت خود برگردید و ببینید آیا خطا همچنان وجود دارد یا خیر.
اگر نه، اکنون میدانید که توسط برخی افزونهها ایجاد شده است. به FTP برگردید، نام پوشه را به “plugins” تغییر دهید. وارد آن شوید و نام پوشههای هر افزونه را یکی یکی تغییر دهید. ساده ترین راه برای انجام این کار اضافه کردن یک خط زیر در پایان است: “_”
به سایت خود برگردید تا ببینید چه زمانی مشکل حل میشود. وقتی آن را به یک افزونه خاص محدود کردید، افزونه مشکلساز را پیدا کردهاید. یا آن را حذف کنید یا آنلاین شوید تا ببینید راه حلی پیدا میکنید یا خیر.
- اگر حتی پس از تغییر نام پوشه “plugins” همچنان خطا وجود دارد، دقیقاً همان فرآیند را با پوشه “themes” طی کنید.
- اگر این کار کمکی نکرد، نام هر دو پوشه را به حالت اول یعنی “plugins” و “themes” تغییر دهید، چون خطا ناشی از چیز دیگری است.
مرحله 3: بررسی کنید پایگاه داده شما خراب نشده است؟
پایگاه داده وردپرس چیز نسبتاً پیچیده ای است، و تعداد زیادی چرخ دنده کوچک وجود دارد که برای جلوگیری از بروز مشکل، باید کاملاً با هم کار کنند. گاهی اوقات، چیزی از جای خود خارج میشود و این زمانی است که خطای ایجاد اتصال پایگاه داده را میبینید.
اولین چیزی که باید بررسی کنید این است که به داشبورد وردپرس خود بروید: YOURSITE.com/wp-admin
اگر همان خطای اصلی را مشاهده کردید: «خطا در ایجاد اتصال پایگاه داده»، این مرحله را رد کنید.
ثانیاً، اگر چیز دیگری میبینید، به چیزی که وردپرس پیشنهاد میکند دقت کنید. وردپرس در نسخه های جدید خود راه حل های حل مشکل خود را ارئه داده است، بنابراین ممکن است توصیههای خوبی را در آنجا مشاهده کنید.
احتمال دیگر این است که پیامی را مشاهده کنید که با «One or more database tables are unavailable […]» شروع میشود، به این معنی است که شما باید پایگاه داده را تعمیر کنید.
اینکار در واقع بسیار ساده است. ابتدا از طریق FTP به سایت خود متصل شوید. به روت وردپرس بروید و فایل “wp-config.php” را در دسکتاپ خود دانلود کنید.
این فایل را در ویرایشگر ویرایش کنید، یک خط اضافی در انتها اضافه کنید (درست قبل از «That’s all, stop editing )
define('WP_ALLOW_REPAIR', true);
اکنون فایل را دوباره به سایت خود (از طریق FTP) با بازنویسی نسخه قدیمی آپلود کنید.
به YOURSITE.com/wp-admin/maint/repair.php
بروید.
حالا باید همچین صفحهای مشاهده کنید:
روی یکی از دکمهها کلیک کنید. پس از اتمام تعمیر خودکار، به سایت خود برگردید و ببینید آیا خطا همچنان وجود دارد یا خیر؟
اگر خطایی وجود نداشته باشد، عالی است! اما باید فایل “wp-config.php” خود را به حالت قبلی برگردانید. خط جدیدی را که به تازگی اضافه کردهاید حذف کنید و فایل را دوباره آپلود کنید.
اگر خطا همچنان وجود دارد، مرحله بعدی این است:
مرحله 4: اتصال پایگاه داده خود را بررسی کنید
همانطور که اشاره کردیم، وردپرس از نام کاربری و رمز عبور خاصی برای اتصال به پایگاه داده استفاده میکند. به طور معمول، این اعتبارنامهها به خودی خود تغییر نمیکنند. با این حال، پس از ایجاد هر گونه تغییر در فایلهای سایت، محیط میزبانی یا هر چیز دیگری، میتوانید سناریوهای عجیب و غریبی را تجربه کنید.
به عبارت دیگر، حتی اگر نباید اتفاق بیفتد، اعتبار دسترسی گاهی اوقات تغییر میکند. و با اعتبار دسترسی اشتباه “error establishing a database connection” رخ میدهد.
رفع مشکل در فایل “wp-config.php” انجام میشود. ما در مورد این دستورات صحبت می کنیم:
define('DB_NAME', 'some_db');
define('DB_USER', 'some_username');
define('DB_PASSWORD', 'some_pass');
define('DB_HOST', 'localhost');
در این دستورات تمام جزئیاتی را که وردپرس برای اتصال به پایگاه داده نیاز دارد، در خود جای داده است. اگر هر یک از اینها اشتباه باشد، هیچ ارتباطی با دیتابیس برقرار نخواهد شد.
توجه داشته باشید که یک راه صحیح برای رفع این مشکل وجود دارد، اما صادقانه بگویم که این کار به چندین مرحله نیاز دارد و بر اساس هاستینگ شما و رابط کاربری آن می تواند مقداری گیج کننده باشد.
به عبارت دیگر، هر چیزی که در اینجا بیان کنیم، فقط برای طیف کوچکی از کاربرانی که اتفاقاً از همان میزبانی که ما استفاده میکنند قابل استفاده است، بنابراین ما یک راهحل بسیار جامعتر برای شما داریم.
پشتیبانی همه چیز را بررسی میکند و به شما نتیجه را اعلام میکند. در اغلب موارد، در صورتی که چیزی تغییر کرده باشد، جزئیات صحیح را در اختیار شما قرار میدهند.
تنها کاری که باید انجام دهید این است که اعتبارنامههای جدید را بردارید و آنها را در فایل «wp-config.php» خود در جایی که اعتبارنامههای قدیمی بودند قرار دهید.
define('DB_NAME', 'some_db'); /* this is the name of your WordPress database */
define('DB_USER', 'some_username');
define('DB_PASSWORD', 'some_pass');
define('DB_HOST', 'localhost'); /* this is the web address of your database server */
سپس، فایل را دوباره از طریق FTP آپلود کنید.
در این مرحله میتوانید به سایت برگردید و ببینید که آیا خطا برطرف شده است یا خیر؟ اگر حطا برطرف نشده است، ما یک مرحله نهایی مدنظر داریم:
مرحله 5: بازیابی فایل های پیش فرض وردپرس
همانطور که قبلا ذکر کردیم، فایلهای اصلی وردپرس به دلایل مختلفی ممکن است خراب شوند. شاید تلاشی برای هک کردن سایت شما صورت گرفته باشد، و یا اینکه ممکن است برخی از فایلها را به طور تصادفی تغییر داده اید، شاید یک افزونه مشکل دار این تغییرات را انجام داده است.
به اینجا بروید و جدیدترین بسته را روی دسکتاپ خود دانلود کنید. فایل فشرده را باز کنید. و پوشه «wp-content» را حذف کنید.
در مرحله بعد، از طریق FTP به سایت متصل شوید، به ریشه اصلی وردپرس بروید، فایل های جدید وردپرس را آپلود کنید و همه فایل های قبلی را جایگزین کنید.
وقتی آپلود به اتمام رسید، به سایت برگردید و نتیجه آن را ببینید.
این کار، آخرین راه حل است. اگر این مورد هم نتیجه نداد، چاره دیگری ندارید جز اینکه به پشتیبانی هاستینگ خود مراجعه کنید، همه کارهایی را که انجام داده اید به آنها بگویید و درخواست کمک کرده اید.
در این مرحله، شما اساساً تمام کارهایی را که میتوانید برای رفع مشکل انجام دهید، انجام دادهاید و نوبت هاستینگ است که آن را حل کند. بالاخره شما در حال پرداخت هزینه هاست هستید.
چگونه از بروز این خطا در آینده جلوگیری کنیم؟
در حالی که هیچ راه صد درصدی برای محافظت از سایت شما در برابر هرگونه خطای ایجاد اتصال پایگاه داده وجود ندارد، دو نکته اصلی وجود دارد که باید در پازل بیمه خود داشته باشید تا حداقل 90 درصد ایمن باشید:
- هاست معتبر: فقط با هاستینگی کار کنید که پلتفرمهای خود را برای کار با وردپرس بهینه کردهاند. به این ترتیب، همیشه میتوانید روی پشتیبانی آگاهانه و کمک سریع حساب کنید. ناگفته نماند که از بسیاری از مشکلات رایج وردپرس نیز جلوگیری خواهید کرد.
- پشتیبان داشته باشید: یک افزونه پشتیبانگیری ساده مانند UpdraftPlus (به طور اتوماتیک کار میکند) نصب کنید و همیشه باید یک نسخه پشتیبان وردپرس فعال داشته باشید که میتوانید در صورت بروز مشکل در سایت آن را بازیابی کنید
آیا شما هم همچین مشکلی را تجربه کرده اید؟