چگونه مشکل Error Establishing a Database Connection در پایگاه‌داده وردپرس را حل کنیم؟

موضوع: آموزش آذر 16, 1396 بدون دیدگاه

حل کردن پیغام خطای Error Establishing a Database Connection در پایگاه‌داده وردپرس

اگر شما جزو کسانی باشید که برای مدتی در اینترت گشت و گذار کرده باشید حداقل برای یک بار این خطا را دیده‌اید: Error Establishing a Database Connection یکی از طلسم‌هایی است که ممکن است دلایل مختلفی داشته باشد. به عنوان یک وردپرس کار میتوانم بگویم که این خطا می‌تواند یکی از خسته کننده ترین خطاهای ممکن باشد مخضوضا وقتی که خودش و بدون اینکه شما هیچ تغییری ایجاد کنید رخ بدهد.

ما دیروز در سایت خودمان با ایم مشکل برخورد کردیم و بیشتر از ۲۰ دقیقه زمان برد تا مشکل را پیدا و حل کنیم. وقتی درحال جستجو بودم تا دلایل ایجاد این مسئله را پیدا کنم متوجه شدم که مقاله مناسبی وجود نداره که به این مسئله پرداخته و همه مسائل رو در نظر گرفته باشه. در این مقاله ما به شما نشان میدهیم چطور مشکل 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 اضافه کنید.

زمانی که شما این کار را انجام دادید می‌توانیید تنظیمات در از مسیر زیر مشاهده کنید:

http://www.yoursite.com/wp-admin/maint/repair.php

حل مشکل error establishing a database connection در پایگاه‌داده وردپرس

به خاطر داشته باشید حتما نیازی نیست تا کاربر وارد حساب کاربری خود شده باشد تا بتواند از این قابلیت وردپرس استفاده کند و هدف استفاده از این قابلیت فقط تعمییر پایگاه‌داده می باشد، کاربران معمولا تا زمانی که پایگاه‌داده مشکل دارد نمی‌توانند وارد سایت شوند. پس زمانی که شما عملیات تعمییر و بهینه‌سازی پایگاه‌داده را انجام دادید فراموش نکنید که این کد را از فایل wp-config.php حذف کنید.

بررسی فایل wp-config

می‌توان گفت فایل wp-config.php یکی از مهم‌ترین و اصلی ترین فایل‌ها در نصب ویردپرس ‌می‌باشد. اینجا دقیقا جایی است که اطلاعات وردپرس شما قرار می‌گیرد و به پایگاه‌داده متصل می‌شود. اگر شما نام کاربری و رمزعبور دیتابیس را تغییر داده‌اید پس شما باید تغییرات را دراین فایل هم اعمال کنید. اولین چیزی که شما باید قبل از هر چیزی چک کنید این است که آیا تمام تنظیمات در این فایل درست است و چیزی تغییر نکرده است؟

با خاطر داشته باشید که مقدار DB_Host ممکن است همیشه localhost نباشد. بستگی به هاست دارد و در سرورهای مختلف با هم تفاوت دارد اما در اکثر هاست ها و سرورهای ایرانی این مقدار localhost می‌باشد.

بعضی‌ها که با این مشکل برخورد داشته اند به گفته خودشان این مشکل را با تغییر دادن localhost با IP برطرف کرده‌اند. این یک قضیه رایج است زمانی که شما از لوکال هاست استفاده می کنید. برای مثال در نرم‌افزار MAMP زمانی که مقدار DB_Host به IP تغییر کند ممکن است منجر به برطرف کردن این خطا شود.

IP در وب هاستینگ های آنلاین مختلف است.

اگر همه چیز در این فایل کاملا درست بود (چک کنید تا اشتباه تایپی وجود نداشته باشد) در اینجا باید به شما بگوییم که مشکل بوجود آمده از سمت سرور می‌باشد.

هاست را چک کنید (MySQL Server)

اگر شما توجه کرده باشید خطای Error Establishing a Database Connection زمانی رخ می‌دهد که سایت شما ترافیک و بازدید بالایی داشته باشد. اساسا هاست شما تحمل این مقدار فشار را ندارد مخصوصا اگر از هاست های اشتراکی استفاده کنید، سایت شما کاملا کند می‌شود و برای بعضی کاربرای فقط این پیغام خطا ظاهر می‌شود. پس بهترین کاری که می‌توانید انجام دهید با پشتیبانی هاستینگ خود تماس گرفته و درباره میزان تحمل فشار توسط سرور MySQL از آنها بپرسید و آیا اکنون دسترس خارج شده است یا نه؟

آن دسته از کاربرانی که خودشان میخواهند MySQL را تست کنند، برای این‌کار می‌توانید از چند روش استفاده کنید. سایت‌های دیگر روی این سرور را چک کنید و ببینید آیا آنها هم با این مشکل سر و کار دارند؟ اگر آنها مشکلی نداشتند پس مطمئنا مشکل از SQL سرور شما می‌باشد. اگر هیچ سایت دیگری در این سرور نیست به پنل هاست خود رفته و سعی کنید وارد phpMyAdmin شوید. اگر توانستید وارد شوید پس باید بررسی کنیم پایگاه‌داده دسترسی های لازم را دارد یا خیر.

یک فایل جدید ایجاد کنید با نام testconnection.php و کدهای زیر را داخلش کپی کنید:

مطمئن شوید که نام کاربری و رمز عبور را تغییر داده‌اید. اگر ارتباط موفقیت آمیز باشد به این معنی است که اطلاعات وارد شده صحیح بوده و ما به پایگاه‌داده دسترسی کامل داریم، پس مشکل از جای دیگری است. به تنظیمات فایل wp-config.php بروید و مطمئن شوید همه چیز در این فایل درست است (به اشتباه‌های تایپی دقت کنید).

اگر شما نمی‌توانید از طریق phpMyAdmin به پایگاه‌داده خود وصل شوید پس نتیجه میگیریم که مشکل از سرور شما است و لزوما به این معنا نیست که MySQL سرور شما از کار افتاده است، ممکن است به این معنی باشد که نام کاربری پایگاه داده شما دسترسی کامل را ندارد.

در مشکلی که برای ما پیش آمده بود MySQL سرور بدون هیچ مشکلی در حال کار کردن بود، تمام سایت های روی سرور بدون هیچ مشکلی در حال کارکردن بودند بجز وب‌سایت ما. زمانی که قصد وارد شدن به phpMyAdmin را داشتیم با خطای زیر مواجه شدیم:

#۱۰۴۵ – Access denied for user ‘foo’@’%’ (using password: YES)

با پشتیبان سرور خود تماس گرفتیم و مشکل را با آنها در میان گذاشتیم و اونها به سرعت مشکل را پیدا کردند.به طریقی که ما هنوز مطمئن نیستیم چه طریقی دسترسی های پایگاه داده ما بازنشانی (Reset) شده بود. پشتیبان مجدد دسترسی‌های پایگاه داده را به حالت قبل برگرداندند و به این ترتیب مشکل سایت حل شد و سایت بدون مشکل باز شد.

پس اگر شما با پیغام access denied در حالت استفاده از testconnection.php با در حالت عادی و هنگام ورود به phpMyAdmin مواجه شدید حتما با پشتیبانی هاست و سرور خود تماس بگیرید تا آنها مشکل را برای شما حل کنند.

راه حلی‌هایی که برای دیگران کار کرد

نکته‌ای که باید به خاطر داشته باشید این است که این راه حل ممکن است برای شما کار ساز نباشد. پس این راه حل را با در نظر گرفتن ریسک آن انجام دهید، همچنین حتما فراموش نکنید که قبل از هر کاری یک فایل پشتیبان از پایگاه‌داده خود تهیه فرمایید.

آرش گفته بود که مشتری او پیغامی دریافت میکرد مبنی بر اینکه که پایگاه‌داده شما نیاز به تعمیر شدن دارد. حتی پس از تعمیر پیغام خطا همچنان پا بر جا بود. اونها روشهای مختلفی رو امتحان کردند و مشخص شد که مشکل از آدرس سایت بوده است. ظاهرا تغییر آدرس سایت باعث بروز این مشکل شده بود. آرش با اجرا کردن کد کوچکی در phpMyAdmin این مشکل را حل کرد:

مطمئن شوید که ‘آدرس سایت شما’ را به آدرس سایت خود تغییر دهید به این صورت: https://dlgalaxy.com. اگر می‌خواهید با تنظیمات wp_options آشنا شوید پیشنهاد میکنم حتما این قسمت را مطالعه نمایید: changed the default WordPress database prefix

این راه حل مشکل بوجود آمده را برای این دوست عزیز و چند نفر دیگر برطرف کرد.

دوست عزیز دیگری گفته بود که با testconnection.php توانست به پایگاه‌داده متصل شود، پس در فایل wp-config.php نام کاربری را به root تغییر داد و مشکل برطرف شد. سپس مجدد اطلاعات نام کاربری وارد شده را به حالت قبلی یعنی اطلاعاتی که خودش ساخته بود برگرداند و مشکل برطرف شد. در این حالت ممکن است که اشتباه تایپی باعث بروز این مشکل شده باشد.

خیلی از کاربران هم گفته اند که با نصب مجدد وردپرس این مشکل را حل کرده‌اند.

پدون شک یکی از پیغام‌های آزار دهنده وردپرس Error Establishing a Database Connection می‌باشد. شما چه راه حلی انجام داده‌اید تا مشکل سایت خود را برطرف کنید؟ شما می‌توانید تجربیات خود را با ما در میان قرار داده تا دوستان دیگر در وقت خود صرفه جویی کنند.

هیچ نظری وجود ندارد