python - 不支持身份驗證插件“caching_sha2_password”




mysql (6)

上述解決方案都不適合我。 在我觀看以下視頻之前,我試過非常沮喪: https://www.youtube.com/watch?v=tGinfzlp0fEhttps://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-pyhton連接器。

  3. pip install mysql-connector-python

我試圖用python連接器連接到MySQL服務器。 我用身份驗證插件 mysql_native_password 創建了一個新的用戶 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加密

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


我也遇到了同樣的問題。 我的問題是,我不小心安裝了錯誤的連接器版本。 從文件系統中刪除當前安裝的版本(我的路徑如下所示:C:\ Program Files \ Python36 \ Lib \ site-packages)然後執行“pip install mysql-connector-python”。 這應該可以解決您的問題


我嘗試解決此錯誤,最後安裝 PyMySQL 而不是mysql庫,它正常工作。

謝謝。


我有同樣的問題,但我的決議是不同的,因為這並沒有完全奏效。

我在GitHub論壇上找到了這個 - 將其複制並粘貼到您的終端中。 您無需更改密碼; 它可以完全相同。

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

緩存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'







mysql