recherche

Maison  >  Questions et réponses  >  le corps du texte

php mysqli_connect : méthode d'authentification inconnue du client

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粉170858678P粉170858678467 Il y a quelques jours743

répondre à tous(2)je répondrai

  • P粉727416639

    P粉7274166392023-10-14 16:49:08

    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

    répondre
    0
  • P粉225961749

    P粉2259617492023-10-14 15:47:19

    À 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.

    répondre
    0
  • Annulerrépondre