私は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()
私はこれを修正することができました。最終的に、pythonコネクタのバージョン8.0.11をインストールしないAnacondaのpythonのバージョンを使用していました。 .11は、Vanillaにインストールされていますpython 3.6.5 Windows PowerShell(管理者権限で)を使用し、pip install MySQL-connector-python
(pipを9から10に更新しなければならなかったと思う。
同じ問題があった
"認証プラグイン '{0}'はサポートされていません。"。format(plugin_name))mysql.connector.errors.NotSupportedError:認証プラグイン 'caching_sha2_password'はサポートされていません "
これは、Pythonconnectorが認証プラグインcaching_sha2_password
をサポートしておらず、更新する必要があるために発生します。 MySQL公式サイト から正しいPythonコネクタをインストールすることで修正しました。オペレーティングシステム、MySQLバージョン、および使用するPythonバージョンに基づいて、正しいコネクタを必ずダウンロードしてください。
python3のドライブをインストールします。
python3 -m pip install mysql-connector-python
デフォルトのドライブをインストールしますpythonメーカーによってシステムにプレインストールされています。
python -m pip install mysql-connector-python
私はまったく同じ問題を抱えていて、受け入れられた答えで示唆されているようにpipでmysql-connectorモジュールを更新しようとしましたが、それは助けにはなりませんでした。問題はAnaconda環境に関連している可能性があることに気づいたので、mysql-connector-pythonモジュールの更新にcondaを使用してみました。
最後に、次のコマンドでこの問題を解決しました。
conda install -c anaconda mysql-connector-python
これは、少なくとも私の場合、pipができなかったことを行うようです。 condaパッケージのリンクは次のとおりです。 https://anaconda.org/anaconda/mysql-connector-python
このパッケージは私にはうまくいくようです:Sudo pip install MySQL-connector-python
今すぐ同じ問題に取り組み、上記のすべての答えを試しました(どれも機能しませんでした)。
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
MySQL 8.0がcaching_sha2_password
新しいアカウントのデフォルト認証。これを使用するには、更新されたコネクタが必要です。または、アカウントを変更してネイティブの認証方法を使用できます(ただし、安全性は低くなります)。