web-dev-qa-db-fra.com

"la cryptographie est requise pour sha256_password ou caching_sha2_password"

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()
17
Tania Rheeder
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.

1
Nisarg Bhatt

Le message d'erreur peut être rendu plus complet et utile. Afin de corriger ce package de "cryptographie" doit être installé.

pip install cryptography
53
Amit Kumar

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

6
gajam