web-dev-qa-db-de.com

das sha2-Passwort zwischengespeichert wird nicht von mysql unterstützt

ich versuche, mein Python-Programm dazu zu bringen, Daten in MySQL einzufügen, und ich folgte einer Anleitung. Ich erhalte jedoch den folgenden Fehler.

"Authentifizierungs-Plugin '{0}' wird nicht unterstützt" .format (plugin_name)) Mysql.connector.errors.NotSupportedError: Authentifizierungs-Plugin 'caching_sha2_password' wird nicht unterstützt "

habe ich eine Einstellung in MySQL-Server verpasst oder unterstützt Python dies noch nicht?

Ich denke, ich kann den Kennworttyp einfach ändern, aber mysql möchte mich aus irgendeinem Grund nicht zulassen, dass alle Benutzer mit caching_sha2_password nicht geändert werden können. Wenn ich einen neuen Benutzer erstellt und das Kennwort SHA256 auswähle, erhalte ich den Fehler beim Erstellen des Kontos @% the Passwort-Hash hat nicht das erwartete Format. Überprüfen Sie, ob der korrekte Passwortalgorithmus mit der Funktion PASSWORD () verwendet wird.

#!/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

Ich habe es geschafft, das zu beheben. Am Ende habe ich eine Version von Python in Anaconda verwendet, die Version 8.0.11 des Python-Connectors einfach nicht installieren würde. Es ist mir gelungen, 8.0.11 auf meinem Vanilla Python 3.6.5 mit Windows PowerShell (in Administratorrechten) zu installieren. und mit pip install MySQL-connector-python (ich glaube, ich musste auch pip von 9 auf 10 aktualisieren.

11
adam Wadsworth

Ich hatte das gleiche Problem 

Msgstr "Authentifizierungs - Plugin '{0}' wird nicht unterstützt" .format (plugin_name)) mysql.connector.errors.NotSupportedError: Authentifizierungs-Plugin "caching_sha2_password" wird nicht unterstützt "

Dies geschieht, weil Ihr Python connector das Authentifizierungs-Plugin caching_sha2_password nicht unterstützt und Sie es aktualisieren müssen. Ich habe es behoben, indem ich den korrekten Python-Connector von MySQL offizielle Site installierte. Laden Sie den richtigen Connector für Ihr Betriebssystem, Ihre MySQL-Version und die von Ihnen verwendete Python-Version herunter.

3

Installiert das Laufwerk für Python3.

python3 -m pip install mysql-connector-python

Installiert das Laufwerk für den vom Hersteller auf Ihrem System vorinstallierten Standard-Python.

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

Anscheinend funktioniert dieses Paket für mich: Sudo pip installieren MySQL-Connector-Python

1
Allen211

MySQL 8.0 hat caching_sha2_password zur Standardauthentifizierung für neue Konten gemacht, was aktualisierte Connector erfordert, um sie verwenden zu können. Alternativ können Sie das Konto ändern, um die native auth-Methode zu verwenden (dies ist jedoch weniger sicher).

0
Mike Lischke