web-dev-qa-db-ja.com

認証プラグイン「caching_sha2_password」はサポートされていません

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

enter image description here

27
lch

キャッシュSHA-2プラグ可能認証

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'を指定します。

29
Ben

同じ問題があり、auth_plugin='mysql_native_password'の代わりにmysql-connectorを(pip3経由で)誤ってインストールしたため、mysql-connector-pythonを渡すことはできませんでした。誰かを助けるためにここに置いておくだけです。

61
ozgeneral

この質問はすでにここで回答されており、このソリューションは機能します。

sha2パスワードのキャッシュはmysqlでサポートされていません

このコマンドを試してください:

pip install mysql-connector-python
15
Anupriya Jaju

上記の解決策のどれも私には機能しません。次のビデオを見るまで試してみましたが、非常にいらいらしていました。 https://www.youtube.com/watch?v=tGinfzlp0fE

pip uninstall mysql-connectorは一部のコンピューターで動作し、他のコンピューターでは動作しない場合があります。

私は次のことをしました:

Mysql-connectorが問題を引き起こします。

  1. pip uninstall mysql-connector

    以下は必要ないかもしれませんが、両方のコネクタを完全に取り外しました。

  2. pip uninstall mysql-connector-python

    mysql-conenct-pythonコネクターを再インストールします。

  3. pip install mysql-connector-python

3
Peter Chen

私はこれと同じ問題を抱えていましたが、これは完全に機能しなかったため、私の解像度は異なっていました。

これをGitHubフォーラムで見つけました-これをコピーして端末に貼り付けます。パスワードを変更する必要はありません。まったく同じにすることができます。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
1
Kori Vernon

Mysql暗号化を変更する

ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

1
Kaustuv

私も同じ問題に遭遇しました。私の問題は、間違ったバージョンのコネクタを誤ってインストールしたことです。現在インストールされているバージョンをファイルシステムから削除し(私のパスはC:\ Program Files\Python36\Lib\site-packagesのようになります)、「pip install mysql-connector-python」を実行します。これで問題が解決するはずです

0
coding_tim

[設定]-> [プロジェクト]-> [プロジェクトインタープリター]に移動して、mysql-connector-pythonパッケージの最新バージョンをインストールできます。私の場合、mysql-connector-python 8.0.15でした。

0
PacuS

このエラーを解決し、最終的にmysqlライブラリの代わりにPyMySQLをインストールしようとすると、正常に動作します。

ありがとう。

0