Bonne journée. J'espère que tout va bien. Quelqu'un peut-il m'aider à résoudre ce problème?
Je suis nouveau dans l'environnement MySQL. J'essaie de me connecter à distance à la base de données MySQL. J'ai utilisé le code python suivant) et j'ai obtenu cette erreur.
Print(e) = "cryptography is required for sha256_password or
caching_sha2_password"
Et je ne sais pas comment résoudre l'erreur.
import pymysql as db
Host = "XXXXX.XXX.XX”
PORT = XXXX
USER = "my_username"
PASSWORD = "my_password”
DB = "db_name"
try:
connection = db.Connection(Host=HOST, port=PORT,user=USER,
passwd=PASSWORD, db=DB)
dbhandler = connection.cursor()
dbhandler.execute("SELECT * from table_name")
result = dbhandler.fetchall()
for item in result:
print (DB)
except Exception as e:
print(e)
finally:
connection.close()
import mysql.connector
def connection():
conn = mysql.connector.connect(Host = "XXXXX",
user = 'XXXXX',
password = 'XXXXX',
database = 'login_page',
auth_plugin='mysql_native_password')
c = conn.cursor()
return c , conn
Téléchargez le connecteur mysql plutôt que pymysql et essayez de vous connecter de cette façon. Cela a fonctionné pour moi, j'espère que cela fonctionne pour vous aussi.
Le message d'erreur peut être rendu plus complet et utile. Afin de corriger ce package de "cryptographie" doit être installé.
pip install cryptography
Pour utiliser "sha256_password" ou "caching_sha2_password" pour l'authentification, vous devez installer une dépendance supplémentaire:
$ python3 -m pip install PyMySQL[rsa]
Source: https://pymysql.readthedocs.io/en/latest/user/installation.html