web-dev-qa-db-ja.com

「sha256_passwordまたはcaching_sha2_passwordには暗号化が必要です」

良い一日。あなたのすべてが元気であることを願っています。誰かがこれを修正するのを手伝ってくれる?

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

Pymysqlではなくmysqlコネクタをダウンロードして、この方法で接続してみてください。それは私にとってはうまくいきました、あなたにとってもうまくいくことを願っています。

1
Nisarg Bhatt

エラーメッセージは、より包括的で役立つものにすることができます。この「暗号化」パッケージを修正するには、パッケージをインストールする必要があります。

pip install cryptography
53
Amit Kumar

認証に「sha256_password」または「caching_sha2_password」を使用するには、追加の依存関係をインストールする必要があります。

$ python3 -m pip install PyMySQL[rsa]

ソース: https://pymysql.readthedocs.io/en/latest/user/installation.html

6
gajam