web-dev-qa-db-ja.com

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

私はMySQLにデータを挿入するために私のpythonプログラムを取得しようとしていますが、ガイドに従いましたが、以下のエラーが発生し続けます。

"認証プラグイン '{0}'はサポートされていません" .format(plugin_name))mysql.connector.errors.NotSupportedError:認証プラグイン 'caching_sha2_password'はサポートされていません "

mysqlサーバーの設定を見逃したか、pythonはまだこれをサポートしていませんか?

パスワードの種類を変更することはできると思いますが、mysqlは、何らかの理由で、caching_sha2_passwordを持つすべてのユーザーを変更できず、新しいユーザーを作成し、SHA256パスワードを選択すると、アカウントの作成エラーが発生します@%パスワードハッシュに必要な形式がありません。 PASSWORD()関数で正しいパスワードアルゴリズムが使用されているかどうかを確認してください。

#!/user
# -*- coding: utf-8 -*-

from __future__ import print_function
import urllib.request
import numpy as np
import mysql.connector as mysql

from datetime import date, datetime, timedelta



cnx = mysql.connect(user='root', password='password', database='powergrid')

cursor = cnx.cursor()

tomorrow = datetime.now().date() + timedelta(days=1)

idfueltype= cursor.lastrowid

add_fueltype = ("INSERT INTO fueltype"
                "(idfueltype, fueltypecol, demand)"
               "VALUES(%s, %s, %s)")

fueltype_data = (idfueltype, 'coal', 10000)

cursor.execute(add_fueltype, fueltype_data)

cnx.commit()

cursor.close()
cnx.close()
5
adam Wadsworth

私はこれを修正することができました。最終的に、pythonコネクタのバージョン8.0.11をインストールしないAnacondaのpythonのバージョンを使用していました。 .11は、Vanillaにインストールされていますpython 3.6.5 Windows PowerShell(管理者権限で)を使用し、pip install MySQL-connector-python(pipを9から10に更新しなければならなかったと思う。

17
adam Wadsworth

同じ問題があった

"認証プラグイン '{0}'はサポートされていません。"。format(plugin_name))mysql.connector.errors.NotSupportedError:認証プラグイン 'caching_sha2_password'はサポートされていません "

これは、Pythonconnectorが認証プラグインcaching_sha2_passwordをサポートしておらず、更新する必要があるために発生します。 MySQL公式サイト から正しいPythonコネクタをインストールすることで修正しました。オペレーティングシステム、MySQLバージョン、および使用するPythonバージョンに基づいて、正しいコネクタを必ずダウンロードしてください。

5

python3のドライブをインストールします。

python3 -m pip install mysql-connector-python

デフォルトのドライブをインストールしますpythonメーカーによってシステムにプレインストールされています。

python -m pip install mysql-connector-python
5
DKMDebugin

私はまったく同じ問題を抱えていて、受け入れられた答えで示唆されているようにpipでmysql-connectorモジュールを更新しようとしましたが、それは助けにはなりませんでした。問題はAnaconda環境に関連している可能性があることに気づいたので、mysql-connector-pythonモジュールの更新にcondaを使用してみました。

最後に、次のコマンドでこの問題を解決しました。

conda install -c anaconda mysql-connector-python

これは、少なくとも私の場合、pipができなかったことを行うようです。 condaパッケージのリンクは次のとおりです。 https://anaconda.org/anaconda/mysql-connector-python

1
reincore

このパッケージは私にはうまくいくようです:Sudo pip install MySQL-connector-python

1
Allen211

今すぐ同じ問題に取り組み、上記のすべての答えを試しました(どれも機能しませんでした)。

MySQL 8ドキュメント ごとに、これを修正する最も簡単な方法は、MySQL dファイルに以下を追加することです-> 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
0
FlyingZebra1

MySQL 8.0がcaching_sha2_password新しいアカウントのデフォルト認証。これを使用するには、更新されたコネクタが必要です。または、アカウントを変更してネイティブの認証方法を使用できます(ただし、安全性は低くなります)。

0
Mike Lischke