استكشاف مشكلات الاتصال عند الاتصال بخادم MySQL

Encountering connection problems while accessing a MySQL server is a common challenge for database users. These issues often arise due to incorrect configuration, user permissions, or compatibility problems. Below are the most common errors and their solutions to help you resolve connection issues efficiently.

1. خطأ: المضيف ‘xxx.xx.xxx.xxx’ غير مسموح له بالاتصال بخادم MySQL هذا

السبب

تشير هذه الرسالة إلى أن خادم MySQL لا يسمح للمضيف أو المستخدم المحدد بالوصول إلى قاعدة البيانات. وعادة ما يكون ذلك بسبب عدم كفاية الصلاحيات الممنوحة للمستخدم أو المضيف العميل.

الحل

لحل هذه المشكلة، قم بمنح الصلاحيات المطلوبة للمستخدم من سطر أوامر MySQL:

MySQL

 

mysql> USE mysql; 
mysql> GRANT ALL ON *.* TO 'urUser'@'[urhostname]' IDENTIFIED BY 'urpassword'; 
mysql> FLUSH PRIVILEGES;

  • استبدل urUser وurpassword باسم المستخدم وكلمة المرور الفعليين لك.
  • استبدل [urhostname] باسم المضيف أو عنوان IP للعميل الذي يحاول الاتصال.

إذا استمرت المشكلة، تحقق من أن الشبكات مفعلة على خادم MySQL. بالنسبة لإصدارات MySQL الأحدث، استخدم أداة تكوين مثيل خادم MySQL لتمكين الشبكات عبر TCP/IP.

  1. تأكد من أن خيار الشبكات عبر TCP/IP مفعل.
  2. حدد المنفذ (الافتراضي هو 3306) وأنشئ استثناءً لجدار الحماية لهذا المنفذ.

2. خطأ: غير قادر على الاتصال بأي من المضيفين المحددين

السبب

يمكن أن يحدث هذا الخطأ العام لعدة أسباب، بما في ذلك تكوين الخادم بشكل غير صحيح أو إعدادات الشبكة غير الصحيحة.

الحل

جرّب الخطوات التالية لحل المشكلة:

1. تحقق من أن خادم MySQL يعمل

  • على Windows، تأكد من أن خدمة MySQL تعمل.
  • على نظام Linux، قم بفحص حالة الخادم باستخدام:
    MySQL

    systemctl status mysql

2. تمكين شبكة TCP/IP

  • افتح ملف تكوين MySQL (عادة ما يكون اسمه my.ini أو my.cnf).
  • تأكد من أن السطر skip-networking معلق أو تمت إزالته.
  • أعد تشغيل خادم MySQL بعد إجراء التغييرات.

3. تحقق من رقم المنفذ

  • يعمل خوادم MySQL عادة على المنفذ 3306.
  • تحقق من رقم المنفذ في ملف تكوين MySQL (my.ini أو my.cnf).

4. قواعد جدار الحماية

  • تأكد من عدم منع جدار الحماية الخاص بك لمنفذ MySQL. أضف استثناء للمنفذ 3306 إذا لزم الأمر.

3. خطأ: تم رفض الوصول للمستخدم ‘اسم المستخدم’@’اسم المضيف’ (باستخدام كلمة المرور: نعم)

السبب

يتم تسبب هذا الخطأ عادة ببيانات تسجيل دخول غير صحيحة، مثل اسم مستخدم أو كلمة مرور خاطئة.

الحل

تحقق مرتين من اسم المستخدم وكلمة المرور التي تستخدمها. تأكد من:

  • يتطابق اسم المستخدم وكلمة المرور مع تلك المحددة في MySQL.
  • تم منح المستخدم الوصول إلى قاعدة البيانات أو المضيف المحدد.
    MySQL

     

    GRANT ALL ON dbName.* TO 'UserName'@'HostName' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;

استبدل dbName وUserName وHostName وpassword بأسماء قاعدة البيانات الفعلية واسم المستخدم واسم المضيف وكلمة المرور الخاصة بك.

4. خطأ: العميل لا يدعم بروتوكول المصادقة المطلوب من قبل الخادم؛ اعتبر ترقية عميل MySQL

السبب

هذا الخطأ شائع عند الاتصال بـ MySQL 8.0، حيث يستخدم بروتوكول مصادقة جديد يسمى caching_sha2_password. قد لا تدعم عملاء MySQL أو الأدوات القديمة هذا البروتوكول.

الحل

الخيار 1: ترقية عميلك

قم بترقية عميل MySQL أو الأداة الخاصة بك إلى أحدث إصدار. على سبيل المثال، إذا كنت تستخدم Data Loader، قم بالترقية إلى الإصدار 4.9 أو أحدث، والذي يدعم بروتوكول المصادقة الأحدث.

الخيار 2: حل بديل للعملاء الأقدم

إذا لم تتمكن من ترقية عميلك، اتبع هذه الخطوات لإنشاء مستخدم متوافق في MySQL 8.0:

1. إنشاء مستخدم جديد.

MySQL

 

mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY 'passxxx';

2. منح الامتيازات المطلوبة.

MySQL

 

mysql> GRANT ALL ON *.* TO 'user1'@'localhost' IDENTIFIED BY 'passxxx';

3. تغيير طريقة المصادقة.

MySQL

 

mysql> ALTER USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passxxx';

هذا الأمر يعيد طريقة مصادقة المستخدم إلى بروتوكول mysql_native_password القديم، والذي يتوافق مع العملاء الأقدم.

يمكنك الآن استخدام هذا المستخدم (user1) للاتصال بـ MySQL 8.0 باستخدام أدوات أو مكتبات أقدم.

استكشاف الأخطاء وإصلاحها مشكلات الاتصال بـ MySQL غالبًا ما يتطلب معالجة إعدادات التكوين، وأذونات المستخدم، أو التوافق بين العميل والخادم. من خلال اتباع الحلول الموضحة أعلاه، يمكنك حل الأخطاء الشائعة مثل رفض الأذونات، أو سوء تكوين المضيفين، أو عدم تطابق البروتوكولات.

لإدارة قاعدة البيانات بشكل مستمر، تأكد من تحديث خادم MySQL والأدوات الخاصة بك، واستعرض أذونات المستخدم وإعدادات الشبكة بشكل دوري لتجنب مشكلات الاتصال المستقبلية.

Source:
https://dzone.com/articles/troubleshooting-mysql-connection-issues