php mysqli_connect : méthode d'authentification inconnue du client
P粉170858678
P粉170858678 2023-10-13 18:02:37
0
2
579

J'utilise php mysqli_connect pour me connecter à la base de données MySQL (le tout sur localhost)

<?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');    
}
?>

Voici la table mysql.user :

Fichier ini du serveur 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

En utilisant caching_sha2_password dans le fichier ini du serveur MySQL, il est impossible de se connecter avec l'utilisateur1 ou l'utilisateur2

 ;

Erreur : mysqli_connect() : client demandé par le serveur [caching_sha2_password] Méthode d'authentification inconnue...

En utilisant mysql_native_password dans le fichier ini du serveur MySQL, vous pouvez vous connecter avec l'utilisateur1, mais la même erreur se produit avec l'utilisateur2 ;


Comment utiliser

login sur le serveur mySql ? caching_sha2_password

P粉170858678
P粉170858678

répondre à tous(2)
P粉727416639

J'ai résolu ce problème via la commande SQL :

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

Référencé par https://dev.mysql. com/doc/refman/8.0/en/alter-user.html

Si vous créez un nouvel utilisateur

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

Référencé par https://dev.mysql. com/doc/refman/8.0/en/create-user.html

Cela a fonctionné pour moi

P粉225961749

À partir de PHP 7.4, ce n'est plus un problème. mysqlnd a ajouté la prise en charge de la méthode d'authentification caching_sha2.


Actuellement, la nouvelle fonctionnalité d'authentification caching_sha2 n'est pas prise en charge par l'extension PHP mysqli. Vous devrez attendre qu'ils publient une mise à jour.

Affichez les articles connexes des développeurs MySQL : https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/

Ils n'ont pas mentionné PDO, vous devriez peut-être essayer d'utiliser la connexion PDO.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!