web-dev-qa-db-fra.com

PHP 7.2.2 + PDO mysql 8.0) donne: une méthode d'authentification inconnue du client [caching_sha2_password]

J'utilise PHP 7.2.2 et MySQL 8.0.

Lorsque j'essaie de me connecter avec le bon identifiant, j'obtiens cette erreur:

PDOException::("PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]")

Besoin d'aide pour résoudre le problème.

18
zioMitch

image d'installation de MySql : Si vous voulez utiliser mysql> = 8 et que vous ne vous souciez pas de caching_sha2_password, sélectionnez simplement la deuxième option lors de l'installation.

5
D0rm1nd0

J'ai trouvé ça quelque part, je ne me souviens plus où (ou je le créditerais), mais cela fonctionne jusqu'à ce que MySQL 8 s'améliore. Et PHP est prêt pour caching_sha2_password de MySQL.

Dans MySQL Shell (invite de commande, peu importe):

CREATE USER username@localhost identified with mysql_native_password by 'password';

nom d'utilisateur est le nom d'utilisateur et mot de passe est le mot de passe de cet utilisateur.

Vous pouvez ensuite ajouter des autorisations dans le shell - ou dans le plan de travail, car l'utilisateur existe maintenant avec le type d'authentification: standard.

22
Reid
alter user 'username'@'localhost' identified with mysql_native_password by 'password';

Comme suggéré par ailionx ici: https://github.com/laradock/laradock/issues/139

16
Szekelygobe

Afin d'utiliser mySQL 8 (avec la nouvelle méthode d'authentification), vous pouvez simplement mettre à niveau votre PHP.

MySQL 8

Lorsque vous exécutez un PHP version antérieure à 7.1.16, ou PHP 7.2 avant 7.2.4, configurez le plug-in de mot de passe par défaut de MySQL 8 Server sur mysql_native_password ou sinon vous verrez erreurs similaires à La méthode d'authentification demandée par le serveur inconnue du client [mot de passe caching_sha2] même lorsque caching_sha2_password n'est pas utilisé.

référence: https://www.php.net/manual/en/ref.pdo-mysql.php

2
Leonardo Beal