2017-05-30 15 views
0

OS:RHEL Pythonのバージョン:3.6 SQLAlchemyのバージョン:1.1.10 PyMySQLバージョン:0.7.11 MySQLの按分:5.7.17-13フラスコSQLAlchemyのPyMySQL - アクセス拒否エラー

import pymysql 

conn = pymysql.connect(host='localhost', port=3306, user='testuser', passwd='###########', db='mysql') 

cur = conn.cursor() 

cur.execute("SELECT Host,User FROM user") 

print(cur.description) 

print() 

for row in cur: 
    print(row) 

cur.close() 
conn.close() 

上記のコードを実行しようとすると、次のエラーメッセージが表示されますが、コマンドラインから同じアカウントとパスワードを使用してmysqlに接続できます。

pymysql.err.OperationalError: (1045, "Access denied for user 'testuser'@'127.0.0.1' (using password: YES)") 

インターネット上でこのエラーメッセージを検索しましたが、実際の問題を特定できませんでした。誰でも私がこの問題を解決するのを助けることができれば本当に感謝します。

+0

まあ、その名前とパスワードでdbユーザーを作成しましたか? –

+0

@DanielRosemanはい、あります。同じユーザーとパスワードを使用してコマンドラインからログインできます。 – Kaartz

答えて

1

問題が見つかりました:MySQL 5.7のデフォルト認証プラグインは、PyMySQLでサポートされていないsha256でした。それをmysql_native_passwordに変更し、問題を修正しました。

+1

私は過去に同様の問題に直面しており、これを解決できませんでした:https://stackoverflow.com/questions/42347191/pymysql-cant-connect-amazon-rds-host-but-same-host-is-accessible -through-mysql?noredirect = 1&lq = 1。これをどこで変更できるのですか?「mysql_native_passwordに変更しました」 – Viv

関連する問題