php - supported - unknown variable default authentication plugin mysql_native_password




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

J'utilise php mysqli_connect pour me connecter à une base de données MySQL (tous 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

avec caching_sha2_password dans le fichier ini du serveur MySQL, il est impossible de se connecter avec user1 ou user2;

error: mysqli_connect (): La méthode d'authentification demandée par le serveur était inconnue du client [mot_de_passe_saching_sha2] dans ...

avec mysql_native_password dans le fichier ini du serveur MySQL, il est possible de se connecter avec user1, mais avec user2, la même erreur;

Comment puis-je me connecter en utilisant caching_sha2_password sur le serveur mySql?



Cela fonctionne pour moi (PHP 5.6 + PDO / MySQL Server 8.0 / Windows 7 64bits)

Editez le fichier C:\ProgramData\MySQL\MySQL Server 8.0\my.ini :

default_authentication_plugin=mysql_native_password

Réinitialiser le service MySQL sous Windows et dans le shell MySQL ...

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


Si vous utilisez Windows et qu'il n'est pas possible d'utiliser caching_sha2_password , vous pouvez procéder comme suit:

  1. relancez le programme d'installation MySQL
  2. sélectionnez "Reconfigurer" à côté de MySQL Server (l'élément le plus haut)
  3. cliquez sur "Suivant" jusqu'à "Méthode d'authentification"
  4. changez "Utiliser le cryptage de mot de passe fort pour l'authentification (RECOMMANDÉ)" en "Utiliser la méthode d'authentification héritée (conserver la compatibilité MySQL 5.X)"
  5. cliquez sur Suivant"
  6. entrez votre mot de passe de compte racine dans Comptes et rôles, puis cliquez sur "Vérifier"
  7. cliquez sur Suivant"
  8. continuez à cliquer sur "Suivant" jusqu'à "Appliquer la configuration"
  9. cliquez sur "Exécuter"

Le programme d'installation apportera toutes les modifications de configuration nécessaires.





sha