هذه الرسالة واحدة سواء كانت كلمة المرور خاطئة أم الخادم متوقّفًا أم القرص ممتلئًا أم حدُّ الاتّصالات مبلوغًا. والتخمين بين أربعة أبطأ من الاختبار، والاختبار أمرٌ واحد.

جرّب الاعتمادات لا الموقع

mysql -u dbuser -p -h localhost dbname
  • Access denied for user — مستخدمٌ أو كلمة مرور خاطئة، أو أن المستخدم بلا صلاحية على تلك القاعدة.
  • Can't connect to local MySQL server — الخدمة لا تعمل.
  • Unknown database — الاسم خاطئ، أو أن القاعدة لم تُنشأ أصلًا على هذا الخادم.
  • Too many connections — بُلِغ الحدّ.

رُفض الإذن

اقرأ الاعتمادات التي يستعملها الموقع فعلًا — لا التي تتذكّرها أنت.

grep -E "DB_NAME|DB_USER|DB_PASSWORD|DB_HOST" wp-config.php

وكلمةُ مرور فيها علامة اقتباس أو شرطة مائلة عكسية سببٌ شائع: صحيحةٌ في اللوحة وخاطئة في الملفّ، لأن التهريب ضاع.

الخدمة لا تعمل

systemctl status mariadb
systemctl start mariadb
journalctl -u mariadb --since "30 min ago" | tail -30

وإن بدأت ثم توقّفت من جديد، فالسجلّ يسمّي السبب. والقرص الممتلئ والجدول التالف هما المعتادان.

اتّصالاتٌ أكثر من اللازم

SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';
ورفعُ max_connections والمشكلة الحقيقية استعلاماتٌ بطيئة يشتري دقائق. فكل اتّصال يكلّف ذاكرة، وخادمٌ تنفد ذاكرته أسوأ من خادمٍ يرفض اتّصالًا.

بعد النقل

قاعدةٌ نُقلت إلى خادم آخر تحتاج عادةً تغيير DB_HOST من localhost إلى عنوان، ومستخدمًا مأذونًا من ذلك العنوان لا من localhost.

وعلى استضافة EGPHP تجد الاعتمادات في EGPNL تحت «قواعد البيانات»، واللوحة تُظهر المضيف الذي ينبغي أن يستعمله الموقع. انسخ من هناك بدل أن تكتب.