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()
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 quemysql_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 argumentauth_plugin
qui peut être utilisé pour forcer l'utilisation d'un plugin particulier. Par exemple, si le serveur est configuré pour utilisersha256_password
par défaut et que vous souhaitez vous connecter à un compte authentifié à l'aide demysql_native_password
, connectez-vous via SSL ou indiquezauth_plugin='mysql_native_password'
.
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.
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