«криптография требуется для sha256_password или caching_sha2_password» - PullRequest
0 голосов
/ 01 февраля 2019

Добрый день.Надеюсь, у тебя все хорошо.Может кто-нибудь помочь мне исправить это?

Я новичок в среде MySQL.Я пытаюсь подключиться к базе данных MySQL удаленно.Я использовал следующий код Python и получил эту ошибку.

Print(e) = "cryptography is required for sha256_password or 
             caching_sha2_password"

И понятия не имею, как решить эту ошибку.

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()

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Сообщение об ошибке можно сделать более полным и полезным.Для исправления этого «криптографического» пакета необходимо установить.

pip install cryptography
0 голосов
/ 13 мая 2019

Чтобы использовать «sha256_password» или «caching_sha2_password» для аутентификации, вам необходимо установить дополнительную зависимость:

$ python3 -m pip install PyMySQL[rsa]

Источник: https://pymysql.readthedocs.io/en/latest/user/installation.html

0 голосов
/ 01 февраля 2019
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

Загрузите соединитель mysql вместо pymysql и попробуйте подключиться таким образом.Это сработало для меня, надеюсь, это сработает и для вас.

...