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


90

Pythonコネクタを使用してMySQLサーバーに接続しようとしています。lcherukuri認証プラグインを使用して新しいユーザーを作成しましたmysql_native_password

しかし、私はエラーが発生しました

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 Ver 8.0.11
phani

私もこの問題を抱えていて(Windows 10で)、最終的に次の場所で便利なチュートリアルを見つけました:datacamp.com/community/tutorials/mysql-pythonそこで提案されているように、dev.mysql.com / downloads / connector /からmysql.connectorをダウンロードしました。 pythonとこれをインストールした後成功しました。
johnnzy

回答:


87

キャッシングごとの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'


207

同じ問題が発生し、(pip3経由で)代わりauth_plugin='mysql_native_password'に誤ってインストールしたため、パスが機能しませんでした。誰かを助ける場合に備えて、これをここに残しておいてください。mysql-connectormysql-connector-python


11
私の場合、それはそれを解決しました!ありがとう!
MK

3
ありがとう!my-connectorをアンインストールし、mysql-connector-pythonをインストールすると、機能しました。
ラジク

1
私の場合も解決しました。私はw3schoolsをフォローし、pipとpip3にmysql-connectorをインストールしましたが、これを書いている時点ではw3schoolsは古くなっています。これを行う適切な方法は、pipおよびpip3にmysql-connector-pythonをインストールすることです。
w3Develops

それでは、どのようにしてライブラリをインポートしましたか?「importmysql-connector-python」または「importmysql.connector」のようなものですか。ドットをダッシュ​​で使用できますか?
coskukoz

私は少し前にこれを持っていたので、私は正確に覚えていません。しかし、github.com / mysql / mysql-connector-pythonを見ると、おそらく「importmysql.connector」です。「mysql-connector」をアンインストールしても、間違ったものをインポートするリスクがないことに注意してください。
ozgeneral

42

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

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

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

pip install mysql-connector-python

1
mysql-connectorは非推奨であることに注意してください。mysql-connector-python上記の回答に示されているように使用する必要があります。
ブレーデンホルト

「pipinstallmysql-connector-python」は私の問題を解決します。どうもありがとう。
ピーター・チェン

33

上記の解決策はどれも私にはうまくいきません。次のビデオを見るまで、私は試してみて非常にイライラしました: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


完璧です、私はaupriyaとozgeneralの答えに従いましたが、どちらも機能しました。ただし、指示に従ってmysql-connectorを完全にアンインストールしてから、mysql-connector-pythonをインストールすることにも利点があります。
w3Develops

あなたの解決策は助けになりました:)私はmysql-connector-python
mysql5.7からmysql8.0にアップグレードし

9

私も同様のエラーが発生しました

  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin
    "Authentication plugin '{0}' is not supported".format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

おそらく、mysql-connector-pythonの代わりにmysql-connectorをインストールしました。したがって、python3用に再度インストールする必要があります。

pip3 install mysql-connector-python

4

Mysql暗号化を変更する

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


4

これと同じ問題が発生しましたが、これが完全に機能しなかったため、解決策が異なりました。

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

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

3

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


3

コードを調べたり、変更が必要なものを変更したりせずに、より永続的なソリューションを得るには:MySQL 8のドキュメントによると、これを修正する最も簡単な方法は、MySQLdファイルに以下を追加する-> MySQLサーバーを再起動することです。

これは私のために働いた!

MySQLインストールで8.0より前のクライアントにサービスを提供する必要があり、MySQL 8.0以降にアップグレードした後に互換性の問題が発生した場合、これらの問題に対処して8.0より前の互換性を復元する最も簡単な方法は、サーバーを再構成して以前のデフォルトの認証プラグインに戻すことです( mysql_native_password)。たとえば、サーバーオプションファイルで次の行を使用します。

[mysqld]
#add the following file to your MySQLd file
    default_authentication_plugin=mysql_native_password

3

コマンドプロンプトを使用して、以下のコマンドをインストールしてください。

pip install mysql-connector-python

ここに画像の説明を入力してください


3

使用する pip install mysql-connector-python

次に、次のように接続します。

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",               #hostname
  user="Harish",                   # the user who has privilege to the db
  passwd="Harish96",               #password for user
  database="Factdb",               #database name
    auth_plugin = 'mysql_native_password',

)

2

私は2日間同じエラーに直面していましたが、最終的に解決策を見つけました。を使用pip listしてインストールされているすべてのコネクタを確認し、すべてのコネクタをアンインストールしました。私の場合、彼らは:

  1. mysql-コネクタ
  2. mysql-connector-python
  3. mysql-connector-python-rf

を使用してそれらをアンインストールしpip uninstall mysql-connector、最終的にMySQLの公式Webサイトmysql-connector-pythonからダウンロードしてインストールすると、正常に動作します。


2

pip3 installmysql-connector-pythonは私の問題も解決しました。mysql-connectorモジュールの使用は無視してください。


2

最初にmysql-connectorをインストールしたためにうまくいかなかった人のために、私は次のことを行いました。

1.最初にCMDで「pip」のパスに移動します

2.「piplist」コマンドを使用します

3. 3つのパッケージ、つまり6つのprotobufとmysql-connectorがインストールされます。

4.それぞれを個別にアンインストールします

5.ここで、mysql-connector-pythonモジュールを新たにインストールします

これは私のためにうまくいった


1
  1. 以下のコマンドを使用してmysqlコネクタをインストールします。

    pip install mysql-connector-python-rf

  2. コマンドを使用して特権を設定します。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;

  3. pythonコマンドを使用してmysqlデータベースに接続します

    mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')


0

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


0

私はこのエラーを解決しようとし、最後にmysqlライブラリの代わりにPyMySQLをインストールしましたが、正常に動作しています。

ありがとう。


0

次のエラーの解決策を探している場合

エラー:EnvironmentErrorが原因でパッケージをインストールできませんでした:[WinError 5]アクセスが拒否されました: 'D:\ software \ spider \ Lib \ site-packages \ libmysql.dll'--userオプションの使用を検討するか、アクセス許可を確認してください。

解決策:--userアクセス拒否エラーを見つけた場合は、追加する必要があります。

 pip install --user mysql-connector-python

このコマンドをcmdに貼り付けて、問題を解決します


0

ほぼ同じエラーが発生しました:

Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported

私にとっての解決策は簡単でした:

私のdbユーザー名/パスワードの資格情報が正しくありませんでした。エラーは問題を説明するものではなかったので、誰かがこれに遭遇した場合に備えて、これを共有したいと思いました。


0

mysql-connectorをアンインストールし(w3schoolsチュートリアルの次のチュートリアルをインストールしました)、代わりにmysql-connector-pythonをインストールしました。機能した。


0

MySql 8を使用すると、コードをDBに接続するときに同じエラーが発生しましたが、pip installmysql-connector-pythonを使用するとこのエラーは解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.