رفع خطای اتصال پایگاه داده یا establishing a database connection در وردپرس

رفع ارور خطا در برقراری ارتباط با پایگاه داده

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

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

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

چرا خطای اتصال پایگاه داده در وردپرس رخ می‌دهد؟

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

رایج‌ترین علت‌های این خطا معمولاً این موارد هستند:

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

وردپرس برای برقراری اتصال، به چهار اطلاعات اصلی نیاز دارد:

  • نام پایگاه داده
  • نام کاربری پایگاه داده
  • کلمه عبور پایگاه داده
  • سرور یا میزبان پایگاه داده

این اطلاعات داخل فایل wp-config.php ذخیره می‌شوند. بنابراین بررسی این فایل معمولاً اولین قدم برای عیب‌یابی است.

نحوه رفع خطای اتصال پایگاه داده در وردپرس

1. اطلاعات فایل wp-config.php را بررسی کنید

مهم‌ترین و رایج‌ترین دلیل بروز این خطا، اشتباه بودن اطلاعات اتصال به دیتابیس در فایل wp-config.php است. این موضوع معمولاً بعد از جابه‌جایی سایت، تغییر هاست، ساخت دیتابیس جدید یا تغییر رمز عبور پایگاه داده بیشتر دیده می‌شود.

در این فایل معمولاً با بخش‌هایی شبیه موارد زیر روبه‌رو می‌شوید:

define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );

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

برای پیدا کردن اطلاعات درست، وارد پنل هاست خود شوید و از بخش Advanced به قسمت Databases و سپس MySQL Databases بروید.

نحوه رفع خطای اتصال پایگاه داده در وردپرس

در این قسمت می‌توانید اطلاعات دیتابیس‌های موجود روی هاست را ببینید. معمولاً نام پایگاه داده و نام کاربری دارای دسترسی به آن در همین بخش مشخص است.

نحوه رفع خطای اتصال پایگاه داده در وردپرس

حالا اطلاعات این بخش را با مقادیر داخل فایل wp-config.php مقایسه کنید. اگر نام دیتابیس یا نام کاربری با مقدارهای فایل یکی نیست، باید آن‌ها را اصلاح کنید.

2. رمز عبور کاربر پایگاه داده را بررسی یا بازنشانی کنید

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

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

نحوه رفع خطای اتصال پایگاه داده در وردپرس

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

3. دیتابیس وردپرس را تعمیر کنید

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

آموزش افزایش حافظه php در وردپرس به همراه شرح دلایل ایجاد آن

برای این کار ابتدا خط زیر را به فایل wp-config.php اضافه کنید:

define( 'WP_ALLOW_REPAIR', true );

سپس آدرس زیر را در مرورگر باز کنید:

yourdomain.com/wp-admin/maint/repair.php

در این صفحه، وردپرس دو گزینه برای تعمیر دیتابیس در اختیار شما قرار می‌دهد: Repair Database و Repair and Optimize Database.

تعمیر پایگاه داده وردپرس

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

مطالب بیشتر بخوانید: بعد از رفع مشکل، اگر می‌خواهید پایگاه داده سایتتان را سبک‌تر و مرتب‌تر کنید، مقاله بهینه‌سازی دیتابیس وردپرس؛ 6 روش امن و کاربردی هم برایتان مفید خواهد بود.

4. مقدار DB_HOST را بررسی کنید

در بسیاری از سایت‌ها مقدار DB_HOST برابر localhost است، اما این موضوع همیشه صدق نمی‌کند. بعضی شرکت‌های هاستینگ از مقدار دیگری برای میزبان پایگاه داده استفاده می‌کنند. اگر این مقدار نادرست باشد، وردپرس نمی‌تواند اتصال را برقرار کند؛ حتی اگر نام دیتابیس، نام کاربری و رمز عبور کاملاً درست باشند.

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

5. مطمئن شوید سرور پایگاه داده در دسترس است

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

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

راه دیگر این است که یک فایل آزمایشی برای اتصال به MySQL بسازید و اتصال مستقیم را تست کنید:

<?php
$link = mysqli_connect('localhost', 'username', 'password');

if (!$link) {
    die('Could not connect: ' . mysqli_connect_error());
}

echo 'Connected successfully';
mysqli_close($link);
?>

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

سایر راهکارها برای رفع خطای اتصال پایگاه داده در وردپرس

اگر راهکارهای اصلی بالا مشکل را حل نکردند، چند مورد دیگر هم وجود دارد که بعضی کاربران با آن‌ها نتیجه گرفته‌اند:

به‌روزرسانی آدرس سایت در phpMyAdmin

در بعضی شرایط، مخصوصاً بعد از انتقال سایت، ممکن است لازم باشد مقدار آدرس سایت در جدول wp_options بررسی یا اصلاح شود. برای این کار می‌توانید از طریق phpMyAdmin و بخش SQL دستور زیر را اجرا کنید:

UPDATE wp_options
SET option_value='YOUR_SITE_URL'
WHERE option_name='siteurl';

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

راه‌اندازی دوباره سرور

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

از پشتیبانی هاست کمک بگیرید

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

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

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

منبع : 

https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-error-establishing-a-database-connection-in-wordpress/

سوالات متداول

این خطا به معنای بروز خطای اتصال پایگاه داده در وردپرس است و مرتبط با مشکلات اتصالاتی در پایگاه داده می شود.
خطای establishing a database connection در وردپرس ممکن است به دلیل وجود اطلاعات نادرست در قسمت تنظیمات وردپرس رخ دهد. از دیگر عوامل آن می‌توان به مشکلات کلی دیتابیس و عدم پاسخگویی سرور پایگاه داده اشاره کرد. پایگاه داده در واقع نرم‌افزاری است که موجب می‌شود بتوانید به راحتی داده‌ها را در نرم‌افزارهای دیگر ذخیره‌سازی، سازمان‌دهی و بازیابی کنید. وردپرس به عنوان یک سیستم مدیریت محتوا، از یک پایگاه داده برای ذخیره‌سازی محتوای شما سایر سایت‌ها استفاده می‌کند. در حقیقت هر بار که بازدیدکننده‌ای وارد سایت شما می‌شود، این اتصال به پایگاه داده برقرار خواهد شد.
نام پایگاه داده نام کاربری پایگاه داده کلمه عبور پایگاه داده سرور پایگاه داده
آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. 10 سال عضو همیار وردپرس

    سلام
    من این کدی رو که نوشته بودید رو وارد کردم کلا دیگه صفحه سفید شده هیچی ننوشته مشکل از چیه؟

  2. سلام
    من از طریق هاست ویندوز plesk ورد پرس نصب کردم، بعد از اتمام کار و راه اندازی سایت از پنل هاست تو بخش تنظیمات ورد پرس site name رو از My Cms به Aramesh تغییر دادم. الان خطای پایگاه داده دارم . حتی قادر به لاگین کردن هم نیستم.
    متن کامل خطا :
    {“err_code”:0,”err_message”:”\u062e\u0637\u0627 \u062f\u0631 \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647″} PHP Fatal error: Call to undefined function wp_cache_get() in C:\inetpub\vhosts\titoqc.ir\massagecenter.ir\wp-includes\functions.php on line 1367 Fatal error: Call to undefined function wp_cache_get() in C:\inetpub\vhosts\titoqc.ir\massagecenter.ir\wp-includes\functions.php on line 1367
    لطفا راهنمایی کنید. مرسی

  3. 11 سال عضو همیار وردپرس

    با سلام خدمت تمام اعضای زحمت کش گروه همیار وردپرس
    خواستم بخاطر آموزش های مفیدتون تشکر کنم و یه تشکر ویژه هم از خانم کوهستانی که واقعا مطالب آموزشی ایشون خیلی به درد من خورده

    خسته نباشید

  4. 10 سال عضو همیار وردپرس

    سلام.من قالب بیلد پرس رو خریدم و تمام افزونه ها رو هم نصب کردم.حالا موقعی میخوام قسمت پروژه ها رو با استفاده از افزونه essential grid اضافه کنم بهم ارور 503 میده؟مشکل از کجاست؟ به نظرتون؟
    ممنون

  5. سلام
    برای مشکل Unknown storage engine ‘InnoDB چیکار باید کرد؟

  6. سلام و خسته نباشید
    من تو ویندوز 10 همه کارا رو درست انجام دادم ,فکر کنم یه ده دفه ای هم یوز نیم وپسوردمو چک کردم ولی بازم ارور این ارور رو میده

    Warning: Cannot modify header information – headers already sent by (output started at C:\wamp\www\wordpress\wp-config.php:1) in C:\wamp\www\wordpress\wp-includes\functions.php on line 3503
    خطا در برقراری ارتباط با پایگاه‌داده
    چند دفه ای هم پاک کردم دوباره نصب کردم ولی نشد و مطمئن هستم که مشکل از یوزرنیم و پسورد نیست
    تو ویندوز هفت نصب کردم درست کار کرد
    ممنون میشم اگه کمک کنید

    • 11 سال عضو همیار وردپرس

      سلام
      بهترین نرم افزار شبیه ساز سرور روی لوکال از نظر من xampp هست از اون استفاده کنید.
      نرم افزار wampp فکر میکنم با ویندوز ۱۰ سازگار نیست.

    • 10 سال عضو همیار وردپرس

      نه اتفاقا.سازگار هست.من تست کردم

  7. 10 سال عضو همیار وردپرس

    من این خطا رو هنگام ورود به سایتم میبینم.لطفا راهنماییم کنید.
    Warning: mysql_connect(): Access denied for user ‘karizmah_asf43tv’@’localhost’ (using password: YES) in /home/karizmah/public_html/wp-includes/wp-db.php on line 1518

    • 11 سال عضو همیار وردپرس

      سلام
      به احتمال زیاد یوزرنیم یا پسورد را اشتباه وارد کردین! و یا دیتابیس از هاست پاک شده!

  8. خیلی از راهنمایی های شما ممینونم ،

  9. با سلام
    ضمن تشکر از مطلب مفید شما
    آن طور که از کد ها مشخص است ، گویا این صفحه هنگام رخ دادن ارور های : 503 و 502 به نمایش در می آید ، اگر بخواهیم برای ارور های دیگری مانند : 500 همین صفحه یا مشابه این صفحه به نمایش در بیاید باید چه کار کنیم؟
    با تشکر

    • 13 سال عضو همیار وردپرس

      سلام
      در قطعه کد دو خط

      header('HTTP/1.1 500 Service Temporarily Unavailable');
      header('Status: 500 Service Temporarily Unavailable');

      اضافه کنید.

    • ضمن تشکر فراوان از پاسخ شما ،
      ما با قرار دادن این کد ها در صفحه ی مذکور ، به وردپرس دستور می دهیم در صورت وقوع این ارور ها این فایل را نمایش دهد ؟

    • 13 سال عضو همیار وردپرس

      کاملا درسته

    • خیلی از راهنمایی های شما ممینونم ،
      برای ارور : Resource Limit Is Reached ( 508 ) هم می توان مانند دو ارور مذکور عمل کرد و به صفحه افزود ؟

    • 13 سال عضو همیار وردپرس

      بله میشه

    • اگر بخواهیم هر کدام از ارور های این چنینی را جداگانه مانیتور کنیم ، چه باید کرد ؟
      تا الان تمام ارور ها در فایلی به نام : db-error.php قرار گرفته اند ، آیا می توان برای هر ارور فایل جداگانه ای در نظر گرفت ؟
      ( عملا برای ایجاد برگه ای جهت نمایش به کاربران تفاوتی نداره ، اما از جهت ایمل شدن ارور برای مدیر میتونه این تفکیک اهمیت داشته باشه )

    • 13 سال عضو همیار وردپرس

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

  10. ممنون از راهنماییتون