كيفية حل خطأ MySQL 1698: دليل تفصيلي

نشرت: 2024-03-28

هل حاولت الوصول إلى قاعدة بيانات MySQL كمستخدم جذر ولكنك اصطدمت برسالة الخطأ MySQL error 1698 (28000): تم رفض الوصول للمستخدم "root"@"localhost"؟ هذه مشكلة شائعة للأشخاص الذين يعملون مع MySQL. يمنع الوصول إلى قاعدة البيانات من خلال وسائل مختلفة، بما في ذلك واجهات العميل الطرفية أو PHPMyAdmin أو MySQL. أكثر شيوعًا من أي نظام تشغيل آخر، يظهر هذا الخطأ لمستخدمي نظام Ubuntu.

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

ما هو خطأ MySQL 1698 والأسباب الكامنة وراءه؟

تكمن وراء خطأ MySQL 1698 مشكلة كيفية قيام MySQL بالتحقق مما إذا كان يُسمح لشخص يحاول استخدامه كمستخدم "جذر" بالقيام بذلك. في بعض أنظمة التشغيل، لا يستخدم MySQL كلمة مرور عادية للمستخدم "الجذر". يتحقق حساب MySQL الجذر من خلال البرنامج المساعد auth_socket أو unix_socket. يعمل هذا البرنامج المساعد على أساس بيانات اعتماد نظام التشغيل بدلا من كلمة المرور، والتحقق مما إذا كان طلب اتصال المستخدم يأتي من خلال مقبس UNIX ثم التحقق من صحة اسم المستخدم مقابل بيانات اعتماد النظام.

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

ينبثق هذا الخطأ بسبب وجود تعارض بين الإجراءات الأمنية وتوقعات المستخدم. إن فهم السبب وراء الخطأ هو الخطوة الأولى في إصلاح الخطأ 1698 وإيجاد طرق للحفاظ على قاعدة البيانات آمنة وسهلة الاستخدام.

 > خطأ MySQL 1698 (28000)

وبتعلم المزيد عن خطأ MySQL 1698، نكتشف أن السبب الرئيسي له ليس المفهوم التقليدي لكلمات المرور، بل طريقة المصادقة الفريدة. تتضمن هذه الطريقة إضافة auth_socket أو unix_socket التي تطرقنا إليها أعلاه.

في الأساس، هذا البرنامج المساعد لا يهتم بكلمات المرور على الإطلاق. بدلاً من ذلك، فإنه يتحقق مما إذا كان الاتصال قد تم عبر مقبس UNIX ثم يتحقق مما إذا كان اسم المستخدم الذي يحاول الاتصال يتطابق مع الاسم الذي تم تسجيل الدخول إليه في النظام.

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

كيفية حل خطأ MySQL 1698؟

دعونا نناقش الحلول التي ستعمل ضد خطأ MySQL 1698 وتضمن تفاعلات قاعدة البيانات الفعالة في المستقبل.

قم بتحويل المستخدم إلى البرنامج المساعد mysql_native_password

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

  1. قم بالوصول إلى MySQL Shell كمستخدم مميز.
  2. استخدم هذا الأمر لتبديل طريقة مصادقة المستخدم الجذر إلى ` mysql_native_password` :
 تغيير المستخدم "الجذر" @ "المضيف المحلي" الذي تم تحديده باستخدام mysql_native_password بواسطة "your_new_password"؛

3. مسح الامتيازات لتطبيق التغييرات:

 امتيازات التدفق؛

4. اخرج من MySQL وحاول تسجيل الدخول كمستخدم جذر مرة أخرى.

أضف مستخدم النظام إلى جدول مستخدم MySQL

تؤدي إضافة مستخدم النظام إلى جدول مستخدمي MySQL وتمكين المكون الإضافي ` auth_socket` إلى تحسين الأمان. تعمل هذه الطريقة على تعزيز المصادقة على مستوى نظام التشغيل، مما يسمح بالوصول إلى قاعدة البيانات بطريقة أكثر أمانًا من مصادقة كلمة المرور التقليدية. يقلل هذا الأسلوب من المخاطر المرتبطة باستخدام الحساب الجذر مباشرة لعمليات قاعدة البيانات.

  1. قم بتسجيل الدخول إلى خادم MySQL كمستخدم أساسي أو مستخدم آخر يتمتع بامتيازات كافية.
  2. أنشئ مستخدمًا جديدًا واضبط المصادقة على ` auth_socket `:
 إنشاء مستخدم 'your_system_user'@'localhost' معرّف باستخدام auth_socket؛

3. منح الامتيازات اللازمة للمستخدم الجديد:

 منح جميع الامتيازات على *.* إلى 'your_system_user'@'localhost' مع خيار المنحة؛

4. مسح الامتيازات لتطبيق التغييرات:

 امتيازات التدفق؛

5. قم بتسجيل الدخول إلى MySQL مع مستخدم النظام الجديد، باستخدام بيانات اعتماد نظام التشغيل للمصادقة.

تعطيل مصادقة unix_socket

إذا كنت تريد حلاً سريعًا، فإن تعطيل مصادقة مأخذ توصيل UNIX يمكن أن يوفر حلاً فوريًا، وإن كان أقل أمانًا. تسمح هذه الطريقة للمستخدم الجذر بتسجيل الدخول باستخدام بروتوكولات كلمة المرور القياسية عن طريق إزالة المكون الإضافي لمأخذ توصيل UNIX من طريقة مصادقة المستخدم الجذر. بينما يعمل هذا على حل مشكلة الوصول، يجب عليك مراعاة المفاضلات الأمنية المحتملة المعنية.

  1. افتح وحدة تحكم MySQL.
  2. قم بتحديث المستخدم الجذر لتعطيل مصادقة مأخذ توصيل UNIX:
 تحديث mysql.user SET plugin='' WHERE User='root';

3. مسح الامتيازات لحفظ التغييرات:

 امتيازات التدفق؛

الآن يمكن للمستخدم الجذر المصادقة باستخدام كلمة مرور، وتجاوز طريقة مقبس UNIX.

خاتمة

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

يتطلب خطأ MYSQL 1698، الذي يرفض الوصول إلى المستخدم الجذر، تكوينًا مدروسًا لآليات المصادقة داخل MySQL.

ناقشنا طرق حل شاملة تتراوح بين تغيير المكون الإضافي للمصادقة إلى " mysql_native_password "، أو دمج مستخدمي النظام في جدول مستخدم MySQL باستخدام المكون الإضافي " auth_socket "، أو تعطيل مصادقة UNIX_socket تمامًا. يقدم كل حل أسلوبًا فريدًا لتجاوز الخطأ، وهو مصمم خصيصًا ليناسب الأوضاع الأمنية والتفضيلات الإدارية المختلفة. يعتمد الخيار الذي ستختاره على مستوى الأمان الذي ترغب في الحصول عليه باستخدام نظام إدارة قاعدة البيانات الخاص بك.