هر کسی که یک سایت راه میندازه و شروع به فعالیت داخلش میکنه. باید برای چالشهای مختلفی خودشو آماده کنه. ممکنه این چالشها آسون باشن یا سخت. ممکن امنیت سایت شما دچار مشکل شده باشه یا یک مشکل فنی داشته باشین. هر کدوم از اینها راه حل داره. امروز میخوام به یکی از رایج ترینهاش بپردازم. محاله که یک سایت وردپرسی داشته باشی و حداقل یکبار این ارور معروف رو ندیده باشی!
عناوین اصلی این مطلب
چی میشه که اینطوری میشه؟!
- حذف شدن کل دیتابیس سایتتون (معمولا اتفاق نمیفته مگر اینکه حک شده باشین یا به طور اشتباهی حذفش کرده باشین)
- تغییر در اطلاعات دیتابیس و اشتباه بودن اطلاعات در فایل wp-config.php (در صورتی که به تازگی فایل wp-config.php رو دستکاری کردین، به احتمال زیاد این ارور از همین موضوع پیش اومده)
- ایجاد خطا هنگام تغییر پیشوند جداول وردپرس (معمولا مربوط به افزونههای امنیتی میشود)
- تغییر سطح دسترسی به فایلهای وردپرس
- وجود مشکل در سرور
که به طور کامل به همشون میپردازیم.
این نکته خیلی مهمه که
خوب به هیچ وجه حس خوبی نیست. مخصوصا برای کسایی که تازه کار هستن. حالا چه مدیر کسب و کار باشن یا طراح سایت. در هر دو حالت با دیدن این ارور کاملا دست و پاشون رو گم میکنن و نمیدونن دقیقا چه اتفاقی افتاده. اگر همین الان این موضوع براتون رخ داده و دارین این مطلب رو مطالعه میکنید که باید این رو بهتون بگم. هیچ مشکلی نیست! خیالتون راحت. این ارور به زبان فارسی این معنی رو میده.
اولا که اطلاعات سایتتون سر جاش هست. نگرانشون نباشین. هیچ اتفاق بدی نیفتاده. همونطور که خود ارور توضیح میده، اتصال بین وردپرس و پایگاه داده شما قطع شده. اگر بخوام یکم درباره پایگاه داده یا database صحبت کنم، باید بگم که زمانی که وردپرس رو نصب میکنید، یکسری اطلاعات مختلف داخلش قرار داره و همینطور هم به این اطلاعات اضافه میشه.
مثلا نام کاربری و پسورد مدیریت، اطلاعات کاربرانی که داخل سایتتون ثبت نام کردن و موارد بسیار مختلف دیگه که نیاز دارن داخل جدولهایی در دیتابیس ذخیره بشن. کلیت این جداول و اطلاعات رو دیتابیس یا پایگاه داده میگن.
وردپرس برای هر بار نمایش این اطلاعات نیاز داره تا به دیتابیس سر بزنه، جدول مربوطه رو چک کنه و بیاره داخل سایت به شما نشونش بده.
حالا دقیقا چه اتفاقی میافته که ارور establishing a database connection نشون داده میشه؟ ارتباط بین این دیتابیس و وردپرس قطع میشه و دیگه نمیتونه اطلاعات رو دریافت کنه.
راهحل اول: خطای برقراری ارتباط با دیتابیس به علت اختلال هاست
اگر از یک هاست اشتراکی استفاده میکنید، به احتمال زیاد این خطا میتواند به خاطر ساپورت نکردن سرور هاست شما باشد. همانطور که اطلاع دارید، در یک هاست اشتراکی شما با چندین وبسایت دیگر به طور مشترک از منابع سرور استفاده میکنید و زمانی که یکی از این وبسایتها منابع زیادی را مصرف کنید، سایتهای دیگر با اختلالاتی مواجه میشوند که یکی از آنها همین ارور دیتابیس وردپرس است.
اگر مطمئن هستید که فایل wp-config شما به درستی تنظیم شده و هیچ اشتباهی رخ نداده است. پس چند دقیقه صبر کنید و دوباره امتحان کنید تا بار سرور کمتر شده و مشکل رفع شود. اگر برای دفعات زیادی است که این اتفاق رخ میدهد، سعی کنید در اولین فرصت هاست خود را ارتقا دهید یا شرکت هاستینگ را تعویض کنید. چون این مورد هم برای کاربران شما ناخوشایند است و هم تاثیرات بدی روی سئو سایت شما خواهد گذاشت.
راهحل دوم: تعمیر دیتابیس از طریق پوشه wp-admin
در برخی مواقع لازم است تا دیتابیس شما توسط خود وردپرس تعمیر شود.
1-برای اینکار ابتدا به کنترل پنل هاست خود مراجعه کرده و بعد فایل wp-config.php را پیدا کنید. این فایل در ریشه اصلی هاست (public_html) قرار گرفته است.
2-سپس اقدام به ویرایش این فایل کنید و قطعه کد زیر را دقیقا بالای این
/* That’s all, stop editing! Happy blogging. */
متن قرار دهید. امکان دارد این کد از قبل داخل فایل شما باشد، در صورت پیدا کردن آن بررسی کنید که روی حالت true باشد. نه false
اگر با همین صفحه مواجه شدین، مراحل رو درست طی کردین. ما اینجا دوتا گزینه داریم.
1-تعمیر پایگاه داده
در صورت انتخاب این گزینه وردپرس شروع به بررسی یک به یک جداول دیتابیس شما کرده و اقدام به تعمیر آنها خواهد کرد. اما گاهی ممکن است دچار اختلال شود و به طور کلی جداول را تعمیر کند.
2-تعمیر و بهینهسازی پایگاه
در صورت انتخاب این گزینه، وردپرس شروع به بهینه سازی جداولی خواهد کرد که تا حالا هیچ گونه بهینه سازی و تعمیر در آنها صورت نگرفته است.
بهتر است ابتدا گزینه اول را انتخاب کنید. بعد از اینکه جداول بررسی شد، چک کنید که آیا جدولی مانده که هنوز تعمیر نشده است. اگر همچین چیزی بود، سراغ گزینه دوم بروید. بعد از انجام مراحل جداول شما بهینه شده و اشکالات آنها رفع خواهد شد.
حالا بررسی کنید که آیا مشکل سایتتان رفع شده است یا خیر. اگر همه چیز به حالت درست برگشته بود، دیگر نیازی به انجام مراحل بعدی ندارید. البته به یاد داشته باشید قطعه کدی که وارد فایل wp-config کردیم را روی حالت false قرار دهید یا به طور کلی حذفش کنید.
راهحل سوم: بررسی اطلاعات موجود در wp-config.php
یکی از مهمترین فایلهای یک سایت وردپرسی همین فایل است. از آنجایی که اطلاعات مهمی مثل نام دیتابیس، پسورد دیتابیس، نام کاربری دیتابیس و هاست دیتابیس را در خود جا داده است. به هاست خود مراجعه کرده و در ریشه public_html فایل wp-config.php را انتخاب و ویرایش (edit) کنید. در ابتدای این فایل مواردی را مشاهد خواهید کرد که شامل موارد زیر میشود.
/** The name of the database for WordPress */
define(‘DB_NAME’, “test”);
/** MySQL database username */
define(‘DB_USER’, “test”);
/** MySQL database password */
define(‘DB_PASSWORD’, “test”);
/** MySQL hostname */
define(‘DB_HOST’, “localhost”);
اگر قبل از بروز خطای establishing a database connection در سایتتان، تغییراتی در این موارد ایجاد کردید. باید بررسی کنید که به صورت صحیح در فایل wp-config هم قرار گرفته باشند.
برای بررسی این موارد باید در کنترل پنل هاست، به قسمت MySQL Management مراجعه کنید. در این قسمت نام دیتابیس را مشاهده خواهید کرد. البته بسته به نوع پنل هاست شما (سی پنل – دایرکت ادمین) ممکن است ظاهر این بخش متفاوت باشد. اما مواردی که ذکر کردیم به طور اساسی هیچ تفاوتی در این دو کنترل پنل ندارند.
این مورد را باید از بین 4 فیلد موجود در در فیلد اول قرار دهید. سپس با کلیک بر نام دیتابیس وارد صفحه دیگری خواهید شد. در این صفحه نیز میتوانید نام کاربری دیتابیس و پسورد آن را بررسی کنید. اگر پسورد دیتابیس را به خاطر ندارید یا جایی ذخیره نکردید. از این قسمت میتوانید اقدام به تغییر پسورد کنید.
بعد از تغییر رمز، آن را در جایی کپی کنید. سپس به ترتیب user را داخل فیلد دوم و پسورد را داخل فیلد سومی قرار دهید. مورد آخری هم که داخل فایل wp-config.php باید بررسی کنید. نام هاست است. به طور معمول این مورد روی localhost تنظیم میشود. اما شما باید این مورد را با شرکت هاستینگ بررسی کنید و در صورت نیاز آی پی مربوطه را از آنها گرفته و در این فیلد قرار دهید. چیزی شبیه به این
define(‘DB_HOST’, ‘127.0.0.1’);
بعد از بررسی موارد و مطمئن شدن از صحت آنها فایل را ذخیره کنید و دوباره چک کنید که خطای دیتابیس رفع شده است یا خیر. به احتمال زیاد با این مورد ارور شما رفع میشود. اما اگر باز هم خطا را مشاهده میکنید، ادامه آموزش را دنبال کنید.
راهحل چهارم: بررسی پیشوند جداول وردپرس
جداول به طور پیشفرض در وردپرس دارای پیشوند wp_ هستند. ممکن است این پیشوند توسط افزونههای امنیتی که روی سایت نصب میشود، تغییر کرده باشد. پس بهتر است بررسی کنید که آیا این مورد تغییر کرده است یا خیر. فایل wp-config را باز کنید و به دنبال عبارت
$table_prefix = ‘wp_’;
بگردین. اگر اون رو پیدا کردین و عبارت wp داخل فیلد وجود داشت. باید طبق تغییری که در افزونه امنیتی ایجاد کردین، این مورد رو هم تغییر بدین. فایل رو سیو کنید و دوباره سایت رو رفرش کنید. اگر مشکل رفع نشد، مرحله بعدی رو امتحان کنید.
راهحل پنجم: بررسی سطح دسترسی فایلهای وردپرس
فایلهای داخل وبسایت شما، همگی دارای سطح دسترسی هستند. برای مثال یک عکس که داخل هاست آپلود میکنید یک دسترسی خاص دارد به طوری که در دید عموم قرار میگرد. اما پوشههای حساس شما مثل wp-config و htaccess باید یک دسترسی محدود داشته باشند و به هیچ نباید برای کاربران دیگر قایل رویت باشند. این سطح دسترسیها با عدد مشخص میشن و هر کدوم یک معنی رو میدن.
حالا ممکن است سطح دسترسی یکی از پوشهها یا فایلهای شما به طوری تنظیم شده که امکان ارتباط با دیتابیس رو نداره و همین موضوع باعث شده سایتتون دچار اختلال بشه.
پس باید داخل هاستتون بررسی کنید تا تمامی فایلها و پوشهها به درستی سطح دسترسی داشته باشن. با کلیک بر روی هر کدام از فایلها میتونید set permission رو انتخاب کنید و روی حالت درست قرارش بدین. به طور استاندارد
- سطح دسترسی برای فایلهای وردپرس باید عدد 644 باشد.
- سطح دسترسی برای پوشههای وردپرس باید عدد 755 باشد.
بعد از اینکه از تمامی موارد مطمئن شدین، دوباره سایت رو رفرش کنید. مشکل باید حل شده باشد.
ارتباط با شرکت هاستینگ یا یک متخصص
در نهایت اگر باز هم ارور Error Establishing a Database Connection یا خطا در برقراری ارتباط با پایگاه داده، رو دریافت میکنید. به شرکت هاستینگ خودتون تیکت بزنید تا مشکل رو بررسی کنن. یا از یک متخصص قابل اعتماد بخواین کمکتون کنه. این موضوع هم همیشه یادتون باشه که در این جور مواقع مهمترین چیز داشتن بکاپ از سایته. ممکنه به اشتباه کاری رو انجام بدین که کلا سایت بره رو هوا، پس لازمه که بکاپ بروزی از سایتتون روی هارد سیستم یا هاست خودتون داشته باشین.
امیدوارم ارورتون رفع شده باشه.