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 द्वारा संदर्भित है

यह मेरे लिए काम करता है

मैं एक MySQL डेटाबेस में प्रवेश के लिए php 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 सर्वर आईएनआई फ़ाइल:

[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

MySQL Server ini फ़ाइल में caching_sha2_password साथ, user1 या user2 के साथ लॉगिन करना बिल्कुल भी संभव नहीं है;

त्रुटि: mysqli_connect (): सर्वर ने क्लाइंट को अज्ञात [caching_sha2_pass] में अज्ञात तरीके का अनुरोध किया

MySQL Server ini फ़ाइल में mysql_native_password साथ, यह user1 के साथ लॉगिन करना संभव है, लेकिन user2 के साथ, वही त्रुटि;

मैं caching_sha2_password सर्वर पर caching_sha2_password का उपयोग करके कैसे लॉगिन कर सकता हूं?


मैंने ALTER USER 'root' @ 'localhost' identified with mysql_native_password BY 'root123'; गए निम्न कमांड ALTER USER 'root' @ 'localhost' identified with mysql_native_password BY 'root123'; कमांड लाइन में और अंत में स्थानीय सेवाओं में MySQL पुनः आरंभ करें।


यह मेरे लिए काम कर रहा है (PHP 5.6 + PDO / MySQL सर्वर 8.0 / विंडोज 7 64 बिट्स)

फ़ाइल को संपादित करें C:\ProgramData\MySQL\MySQL Server 8.0\my.ini :

default_authentication_plugin=mysql_native_password

Windows पर MySQL सेवा रीसेट करें, और MySQL शेल में ...

ALTER USER [email protected]'%' IDENTIFIED WITH mysql_native_password BY 'password';

वर्तमान में, php mysqli एक्सटेंशन नई caching_sha2 प्रमाणीकरण सुविधा का समर्थन नहीं करता है। आपको अपडेट जारी करने तक इंतजार करना होगा।

Mysql डेवलपर्स से संबंधित पोस्ट की जाँच करें: https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/

उन्होंने पीडीओ का उल्लेख नहीं किया, शायद आपको पीडीओ से जुड़ने की कोशिश करनी चाहिए।







sha