pythonコネクタを使用してMySQLサーバーに接続しようとしています。認証プラグインmysql_native_password
で新しいユーザーlcherukuri
を作成しました。
しかし、エラーが発生しました
mysql.connector.errors.NotSupportedError:認証プラグイン「caching_sha2_password」はサポートされていません
誰か助けてくれますか?
import mysql.connector
cnx = mysql.connector.connect(user='lcherukuri', password='password',
Host='127.0.0.1',
database='test')
cnx.close()
MySQL 8.0では、
caching_sha2_password
ではなく、mysql_native_password
がデフォルトの認証プラグインです。
mysql_native_password
を使用していますが、これはデフォルトではありません。 バージョンに合った正しいコネクタ を使用していると仮定すると、接続オブジェクトをインスタンス化するときに auth_plugin
引数 を指定する必要があります
cnx = mysql.connector.connect(user='lcherukuri', password='password',
Host='127.0.0.1', database='test',
auth_plugin='mysql_native_password')
同じドキュメントから:
connect()
メソッドは、特定のプラグインの使用を強制するために使用できるauth_plugin
引数をサポートします。たとえば、サーバーがデフォルトでsha256_password
を使用するように設定されており、mysql_native_password
を使用して認証するアカウントに接続する場合は、SSLを使用して接続するか、auth_plugin='mysql_native_password'
を指定します。
同じ問題があり、auth_plugin='mysql_native_password'
の代わりにmysql-connector
を(pip3経由で)誤ってインストールしたため、mysql-connector-python
を渡すことはできませんでした。誰かを助けるためにここに置いておくだけです。
この質問はすでにここで回答されており、このソリューションは機能します。
sha2パスワードのキャッシュはmysqlでサポートされていません
このコマンドを試してください:
pip install mysql-connector-python
上記の解決策のどれも私には機能しません。次のビデオを見るまで試してみましたが、非常にいらいらしていました。 https://www.youtube.com/watch?v=tGinfzlp0fE
pip uninstall mysql-connector
は一部のコンピューターで動作し、他のコンピューターでは動作しない場合があります。
私は次のことをしました:
pip uninstall mysql-connector
pip uninstall mysql-connector-python
pip install mysql-connector-python
私はこれと同じ問題を抱えていましたが、これは完全に機能しなかったため、私の解像度は異なっていました。
これをGitHubフォーラムで見つけました-これをコピーして端末に貼り付けます。パスワードを変更する必要はありません。まったく同じにすることができます。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
Mysql暗号化を変更する
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
私も同じ問題に遭遇しました。私の問題は、間違ったバージョンのコネクタを誤ってインストールしたことです。現在インストールされているバージョンをファイルシステムから削除し(私のパスはC:\ Program Files\Python36\Lib\site-packagesのようになります)、「pip install mysql-connector-python」を実行します。これで問題が解決するはずです
[設定]-> [プロジェクト]-> [プロジェクトインタープリター]に移動して、mysql-connector-pythonパッケージの最新バージョンをインストールできます。私の場合、mysql-connector-python 8.0.15でした。
このエラーを解決し、最終的にmysqlライブラリの代わりにPyMySQLをインストールしようとすると、正常に動作します。
ありがとう。