103 votes

Le plugin d'authentification "caching_sha2_password" n'est pas pris en charge.

J'essaie de me connecter à un serveur MySQL avec un connecteur python. J'ai créé un nouvel utilisateur lcherukuri avec le plugin d'authentification mysql_native_password .

Mais j'ai obtenu l'erreur

mysql.connector.errors.NotSupportedError : Le plugin d'authentification 'caching_sha2_password' n'est pas pris en charge.

Quelqu'un peut-il m'aider ?

import mysql.connector

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1',
                              database='test')
cnx.close()

enter image description here

1 votes

0 votes

@Ben oui. MySQL Ver 8.0.11

0 votes

J'ai également eu ce problème (sous Windows 10), et j'ai fini par trouver un tutoriel utile à l'adresse suivante : datacamp.com/community/tutorials/mysql-python Comme suggéré ici, j'ai téléchargé mysql.connector à partir de dev.mysql.com/downloads/connector/python et j'ai eu du succès après avoir installé ceci.

258voto

Özgen Eren Points 751

J'ai eu le même problème et j'ai passé auth_plugin='mysql_native_password' n'a pas fonctionné, car j'ai accidentellement installé mysql-connector au lieu de mysql-connector-python (via pip3). Je laisse juste ceci ici au cas où cela aiderait quelqu'un.

17 votes

C'EST LA SOLUTION dans mon cas ! Merci !

4 votes

Merci ! J'ai désinstallé my-connector et installé mysql-connector-python et ça a marché !

2 votes

Cela a résolu le problème dans mon cas également. J'ai suivi w3schools et installé mysql-connector sur pip et pip3 mais w3schools est dépassé au moment où j'écris ces lignes. La bonne façon de faire est d'installer mysql-connector-python sur pip et pip3.

106voto

Ben Points 23834

Par Cache SHA-2 Authentification enfichable

Dans MySQL 8.0, caching_sha2_password est le plugin d'authentification par défaut plutôt que mysql_native_password .

Vous utilisez mysql_native_password qui n'est plus la valeur par défaut. En supposant que vous utilisez l'option le connecteur correct pour votre version vous devez spécifier le site auth_plugin argument lors de l'instanciation de votre objet de connexion

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1', database='test',
                              auth_plugin='mysql_native_password')

De ces mêmes documents :

Le site connect() supporte une méthode auth_plugin qui peut être utilisé pour forcer l'utilisation d'un plugin particulier. Par exemple, si le serveur est configuré pour utiliser le plugin sha256_password par défaut et vous voulez vous connecter à un compte qui s'authentifie à l'aide de mysql_native_password soit se connecter en utilisant SSL, soit spécifier auth_plugin='mysql_native_password' .

55voto

Anupriya Jaju Points 211

Cette question a déjà reçu une réponse ici et cette solution fonctionne.

la mise en cache du mot de passe sha2 n'est pas prise en charge par mysql

Essayez simplement cette commande :

pip install mysql-connector-python

2 votes

Notez que mysql-connector est déprécié. Vous devriez utiliser mysql-connector-python comme indiqué dans la réponse ci-dessus.

0 votes

"pip install mysql-connector-python" résout mon problème. Merci beaucoup.

0 votes

J'ai eu le même problème et la solution ci-dessus a un peu fonctionné, mais maintenant il donne cette erreur 1045 (ci-dessous) quand je lance le programme. Une idée de la raison ? 1045 (28000) : Accès refusé pour l'utilisateur 'Root'@'localhost' (avec mot de passe : YES)

38voto

Peter Chen Points 11

Aucune des solutions ci-dessus ne fonctionne pour moi. J'ai essayé et j'ai été très frustré jusqu'à ce que je regarde la vidéo suivante : https://www.youtube.com/watch?v=tGinfzlp0fE

pip uninstall mysql-connector fonctionne sur certains ordinateurs et peut ne pas fonctionner sur d'autres.

J'ai fait ce qui suit :

Le mysql-connector pose problème.

  1. pip uninstall mysql-connector

    Ce qui suit n'est peut-être pas nécessaire mais j'ai retiré les deux connecteurs complètement.

  2. pip uninstall mysql-connector-python

    réinstaller le connecteur mysql-conenct-python.

  3. pip install mysql-connector-python

0 votes

Parfait, j'ai suivi les réponses d'aupriya et ozgeneral et elles ont toutes deux fonctionné. Mais je trouve également avantageux de suivre vos instructions pour désinstaller complètement mysql-connector et ensuite installer mysql-connector-python.

0 votes

Votre solution m'a aidé :) car j'avais fait une mise à jour de mysql 5.7 à mysql 8.0 et j'ai dû réinstaller le système de gestion de l'information. mysql-connector-python pour régler le problème

5voto

kkunal Points 79

Modifier le cryptage Mysql

ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X