web-dev-qa-db-fra.com

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

j'essaie d'obtenir mon programme python pour insérer des données dans MySQL et j'ai suivi un guide, mais je continue à avoir l'erreur ci-dessous.

"Le plug-in d'authentification '{0}' n'est pas pris en charge" .format (nom du plugin)) Mysql.connector.errors.NotSupportedError: Le plugin d'authentification 'caching_sha2_password' n'est pas pris en charge "

ai-je manqué un paramètre dans le serveur mysql ou python ne le supporte-t-il pas encore?

Je pense que je peux simplement changer le type de mot de passe mais mysql ne veut pas me laisser pour une raison quelconque. Tous les utilisateurs avec caching_sha2_password ne peuvent pas être changés. Lorsque je crée un nouvel utilisateur et que je sélectionne un mot de passe SHA256, l'erreur de création du compte @% the Le mot de passe hash n'a pas le format attendu. vérifie si le bon algorithme de mot de passe est utilisé avec la fonction PASSWORD ().

#!/user
# -*- coding: utf-8 -*-

from __future__ import print_function
import urllib.request
import numpy as np
import mysql.connector as mysql

from datetime import date, datetime, timedelta



cnx = mysql.connect(user='root', password='password', database='powergrid')

cursor = cnx.cursor()

tomorrow = datetime.now().date() + timedelta(days=1)

idfueltype= cursor.lastrowid

add_fueltype = ("INSERT INTO fueltype"
                "(idfueltype, fueltypecol, demand)"
               "VALUES(%s, %s, %s)")

fueltype_data = (idfueltype, 'coal', 10000)

cursor.execute(add_fueltype, fueltype_data)

cnx.commit()

cursor.close()
cnx.close()
3
adam Wadsworth

J'ai réussi à résoudre ce problème. En fin de compte, j’utilisais une version de python dans Anaconda qui n’installe tout simplement pas la version 8.0.11 du connecteur python; j’ai réussi à installer la version 8.0.11 sur mon python Vanilla 3.6.5 à l’aide de Windows PowerShell (dans les privilèges d’administrateur). et en utilisant pip install MySQL-connector-python (je pense que je devais également mettre à jour pip de 9 à 10.

11
adam Wadsworth

J'ai eu le même problème 

"Le plug-in d'authentification '{0}' n'est pas pris en charge" .format (nom du plugin)) mysql.connector.errors.NotSupportedError: plug-in d'authentification 'caching_sha2_password' n'est pas supporté "

Cela est dû au fait que votre connecteur Python ne prend pas en charge le plug-in d'authentification caching_sha2_password et que vous devez le mettre à jour. Je l'ai corrigé en installant le connecteur Python correct à partir de site officiel de MySQL . Assurez-vous de télécharger le bon connecteur en fonction de votre système d'exploitation, de la version de MySQL et de la version de Python que vous utilisez.

3
Giuseppe Marcucci

Installe le lecteur pour python3.

python3 -m pip install mysql-connector-python

Installe le lecteur pour le python par défaut préinstallé sur votre système par le fabricant.

python -m pip install mysql-connector-python
2
Dreamskeepmeup

Il semble que ce paquet fonctionne pour moi: Sudo pip installer MySQL-connector-python

1
Allen211

MySQL 8.0 a défini caching_sha2_password comme authentification par défaut pour les nouveaux comptes, ce qui nécessite des connecteurs mis à jour pour pouvoir l'utiliser. Vous pouvez également modifier le compte pour utiliser la méthode d'authentification native (mais cela est moins sécurisé).

0
Mike Lischke