خطأ في إنشاء اتصال قاعدة بيانات
WordPress تحميل ، وقراءة wp-config.php ، ولم يتمكن من الحصول على إجابة من MySQL. كل صفحة على الموقع فارغة حتى تتمكن من ذلك.
Error establishing a database connection
تسع مرات في عشر أوراق اعتماد في wp-config.php لم تعد تطابق قاعدة البيانات. تأكيد مع اتصال مباشر باستخدام تلك القيم الأربع بالضبط ؛ إذا كان ذلك متصلاً ، فإن المشكلة ليست بيانات الاعتماد والقسم التالي يخبرك بمكان البحث بدلاً من ذلك.
الأسباب الأرجح أولًا.
افحص القائمة بالترتيب. يتيح لك كل فحص تأكيد السبب أو استبعاده قبل تغيير أي شيء، لأن الحلول تختلف والتخمين يكلّف أكثر من تنفيذ أمر للتحقق.
| السبب | كيفية التحقق | الإصلاح |
|---|---|---|
| بيانات الاعتماد الخاطئة في wp-config.php | الاتصال باليد مع نفس القيم الأربع التي يستخدمها wp-config.php. إذا فشل ذلك مع "رفض الوصول" ، فإن الملف هو المشكلة ولا شيء آخر يحتاج إلى اختبار. | صحيح DB_NAME, DB_USER, DB_PASSWORD و DB_HOST. الهجرة هي السبب المعتاد لانجرافها: جلب الأرشيف قيم المضيف القديم معها. |
| خادم قاعدة البيانات لا يعمل | فشل نفس الاتصال المباشر مع "لا يمكن الاتصال" بدلا من "منع الوصول". التمييز بين هاتين الرسالتين هو التشخيص كله. | ابدأ MySQL. إذا لم يكن البقاء حتى، سجل الخطأ الخاص بها أسماء السبب، وعلى استضافة مشتركة هذا السبب هو عادة الذاكرة. |
| قاعدة البيانات تصل إلى حد الاتصال | الخطأ متقطع - يعمل الموقع ، ثم لا يفعل ذلك ، ثم يفعل. ينجح الاتصال المباشر بينما لا يزال الزوار يرون الخطأ. | رفع max_connections ، أو العثور على ما هو عقد اتصالات مفتوحة. البرنامج المساعد فتح اتصال لكل طلب وأبدا إغلاقه هو الجاني المشترك. |
| طاولة تالفة | تفشل بعض الصفحات فقط ، أو يتم تحميل wp-admin بينما لا تفعل الواجهة الأمامية. قد يقدم WordPress رابط إصلاح بدلاً من هذا الخطأ. | قم بتشغيل إصلاح. تعيين WP_ALLOW_REPAIR في wp-config.php، زيارة /wp-admin/maint/repair.php، ثم إزالة ثابت - أن الصفحة لا يوجد لديه مصادقة. |
| DB_HOST أسماء شيء لا يمكن الوصول إليها | بيانات الاعتماد صحيحة و MySQL هو ما يصل، ولكن المضيف في wp-config.php لا يحل من خادم الويب. | استخدم اسم المضيف الذي يمكن أن يصل إليه خادم الويب بالفعل. على المكدسات الحاوية التي هي اسم خدمة ، وليس مضيفًا محليًا ، و localhost هو ما تحتوي عليه معظم التكوينات المهاجرة. |
الإصلاح خطوة بخطوة.
تفترض الأوامر توفر WP-CLI والوصول إلى سطر الأوامر. إن لم يتوفرا، تشرح كل خطوة الإجراء كي تنفذه من لوحة التحكم أو عبر SFTP.
اقرأ ما يقوله wp-config.php في الواقع
ليس ما تتذكره الإعداد. الثوابت الأربعة التي تهم هي بالقرب من أعلى الملف.
grep -E "DB_(NAME|USER|PASSWORD|HOST)" wp-config.php
جرب تلك القيم الدقيقة مقابل MySQL
هذا هو الاختبار الذي يقسم المشكلة إلى قسمين. "رفض الوصول" يعني أن بيانات الاعتماد خاطئة؛ "تعذر الاتصال" يعني أن الخادم لا يجيب.
mysql --user='DB_USER' --password='DB_PASSWORD' --host='DB_HOST' 'DB_NAME' -e 'SELECT 1;'
إذا كانت بيانات الاعتماد خاطئة، فقم بتصحيحها
تحرير wp-config.php ، أو تعيينها مع WP-CLI حتى لا تضطر إلى العثور على الاقتباسات الصحيحة بنفسك.
wp config set DB_PASSWORD 'the-real-password' wp db check
إذا كان الخادم معطلاً، فانظر إلى السبب قبل إعادة تشغيله
AMySQL التي ماتت مرة واحدة سوف يموت مرة أخرى. سجل الخطأ أسماء السبب، وخارج الذاكرة هو الجواب الأكثر شيوعا على خادم صغير.
tail -n 50 /var/log/mysql/error.log
تأكيد من WordPress ، وليس من القشرة
يثبت اتصال shell أن MySQL يمكن الوصول إليه من القشرة. فقط WordPress يمكنه إثبات أنه يمكن الوصول إليه من WordPress.
wp db check && wp option get siteurl
ما تتولاه المنصة عنك.
لا تنجرف بيانات الاعتماد هنا أبدًا ، لأن wp-config.php لا يحملها: يقرأها من البيئة باستخدام getenv () ، لذا فإن تدوير كلمة المرور هو تغيير في مكان واحد بدلاً من تعديل يجب تكراره في ملف. تعمل قاعدة البيانات في حاوية خاصة بها مع بدل الذاكرة الخاص بها ، لذلك لا يمكن لعملية PHP المزدحمة أن تجويعها ، وتعيد Fix Site تعيين موقع مسترجع في قاعدة البيانات الصحيحة في إجراء واحد.
الأسئلة الشائعة.
لماذا بدأ هذا من تلقاء نفسه، مع عدم تغيير أي شيء؟
هل يعني هذا أن بياناتي قد اختفت؟
هل يجب علي استخدام صفحة الإصلاح المضمنة؟
الموقع يعمل ثم يكسر كل بضع دقائق. ما هذا؟
إن لم يكن هذا هو السبب.
قد تبدو هذه الأخطاء متشابهة في المتصفح.