web-dev-qa-db-fra.com

Le plug-in d'authentification 'caching_sha2_password' n'est pas pris en charge

J'essaie de 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 eu l'erreur mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported. Est-ce que quelqu'un peut 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

10
lcherukuri

Per Mise en cache de l'authentification enfichable SHA-2

Dans MySQL 8.0, caching_sha2_password est le plug-in 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 le connecteur correct pour votre version vous devez spécifier l'argument auth_plugin 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:

La méthode connect() supporte un argument auth_plugin qui peut être utilisé pour forcer l'utilisation d'un plugin particulier. Par exemple, si le serveur est configuré pour utiliser sha256_password par défaut et que vous souhaitez vous connecter à un compte authentifié à l'aide de mysql_native_password, connectez-vous via SSL ou indiquez auth_plugin='mysql_native_password'.

14
Ben

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

14
Özgen Eren

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

la mise en cache du mot de passe sha2 n'est pas supportée mysql

Essayez juste cette commande: Pip install mysql-connector-python

0
Anupriya Jaju