php mysqli_connect: طريقة المصادقة غير معروفة للعميل




hash sha (4)

أنا أحل هذا بواسطة أمر SQL:

ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';

والتي يتم الرجوع إليها بواسطة https://dev.mysql.com/doc/refman/8.0/en/alter-user.html

إذا كنت تقوم بإنشاء مستخدم جديد

 CREATE USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

والتي يتم الرجوع إليها بواسطة https://dev.mysql.com/doc/refman/8.0/en/create-user.html

هذا يعمل لي

أنا أستخدم php mysqli_connect لتسجيل الدخول إلى قاعدة بيانات MySQL (كل شيء على المضيف mysqli_connect )

<?php
//DEFINE ('DB_USER', 'user2');
//DEFINE ('DB_PASSWORD', 'pass2');
DEFINE ('DB_USER', 'user1');
DEFINE ('DB_PASSWORD', 'pass1');
DEFINE ('DB_HOST', '127.0.0.1');
DEFINE ('DB_NAME', 'dbname');

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if(!$dbc){
    die('error connecting to database');    
}
?>

هذا هو الجدول mysql.user:

ملف MySQL Server:

[mysqld]
# The default authentication plugin to be used when connecting to the server
default_authentication_plugin=caching_sha2_password
#default_authentication_plugin=mysql_native_password

باستخدام caching_sha2_password في ملف MySQL Server ini ، لا يمكن على الإطلاق تسجيل الدخول باستخدام user1 أو user2 ؛

خطأ: mysqli_connect (): طلب الخادم أسلوب المصادقة غير معروف للعميل [caching_sha2_password] في ...

باستخدام mysql_native_password في ملف MySQL Server ، يمكنك تسجيل الدخول باستخدام user1 ، ولكن مع user2 ، نفس الخطأ ؛

كيف يمكنني تسجيل الدخول باستخدام caching_sha2_password على خادم mySql؟


إذا كنت تستخدم نظام Windows ولا يمكنك استخدام caching_sha2_password على الإطلاق ، فيمكنك القيام بما يلي:

  1. أعد تشغيل المثبت MySQL
  2. حدد "إعادة تكوين" بجوار خادم MySQL (العنصر العلوي)
  3. انقر فوق "التالي" حتى تحصل على "طريقة المصادقة"
  4. تغيير "استخدام تشفير كلمة مرور قوية للمصادقة (الموصى بها)" إلى "استخدام طريقة المصادقة القديمة (الاحتفاظ بتوافق MySQL 5.X)
  5. انقر فوق التالي"
  6. أدخل كلمة مرور حساب الجذر في الحسابات والأدوار ، وانقر فوق "التحقق"
  7. انقر فوق التالي"
  8. استمر في النقر فوق "التالي" حتى تحصل على "تطبيق التكوين"
  9. انقر فوق "تنفيذ"

سيقوم المثبت بإجراء جميع تغييرات التكوين اللازمة لك.



قمت بتشغيل الأمر التالي ALTER USER 'root' @ 'localhost' identified with mysql_native_password BY 'root123'; في سطر الأوامر وأخيرا إعادة تشغيل MySQL في الخدمات المحلية.





sha