目錄
1、環境介紹
2、問題描述
3、原因分析
4、 解決方案
1)方法一:直接改成mysql_native_password驗證方式
2)方案二:?利用sql命令將驗證機制修改
① 打開命令行窗口——cmd
② 登錄mysql數據庫
③ 查看不同用戶名的身份驗證方式select user,plugin from mysql.user;
?④ 將caching_sha2_password修改為mysql_native_password驗證方式
⑤ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';?語句解釋
3)方案三 :直接將mysql版本降低為8.0以下
1、環境介紹
Windows
Python3.9
MySQL8.0.29
2、問題描述
在利用Python創建數據池的時候,出現這個問題
代碼為:
import mysql.connector.pooling# 定義連接需要的參數,用字典封存,私有參數
__config = {"host":"localhost","port":3306,"user":"root","password":"root","database":"studentTable"
}# 創建連接池,定義最大連接數
try:pool = mysql.connector.pooling.MySQLConnectionPool(**__config,pool_size=10)
except Exception as e:print("創建連接池出現異常:",e)
?
3、原因分析
?使用客戶端鏈接mysql數據庫,如果數據庫版本高于8.0,可能出現以上問題,因為8.0以前默認使用mysql_native_password身份驗證機制,8.0以后默認使用caching_sha2_password方式,因此需要將其改成mysql_native_password驗證機制
4、 解決方案
1)方法一:直接改成mysql_native_password驗證方式
【數據庫bug修復】——Authentication plugin ‘caching_sha2_password‘ is not supported_有情懷的機械男的博客-CSDN博客目錄原因連接數據庫的時候出現這個問題的解決方法創建數據庫連接池時解決方法原因使用客戶端鏈接mysql數據庫,如果數據庫版本高于8.0,可能出現以上問題,因為8.0以前默認使用mysql_native_password身份驗證機制,8.0以后使用caching_sha2_password方式連接數據庫的時候出現這個問題的解決方法conn = mysql.connector.connect(host = "localhost", user = "root", pashttps://blog.csdn.net/qq_45769063/article/details/121986314
在參數設置的后面添加這行,修改驗證機制??
?"auth_plugin": 'mysql_native_password'
import mysql.connector.pooling# 定義連接需要的參數,用字典封存,私有參數
__config = {"host":"localhost","port":3306,"user":"root","password":"root","database":"studentTable","auth_plugin": 'mysql_native_password'
}# 創建連接池,定義最大連接數
try:pool = mysql.connector.pooling.MySQLConnectionPool(**__config,pool_size=10)
except Exception as e:print("創建連接池出現異常:",e)
注:這個方案之前是可行的,但是這次沒有解決,于是有了方案二
2)方案二:?利用sql命令將驗證機制修改
mysql錯誤:this authentication plugin is not supported_阿冬哥的博客-CSDN博客this authentication plugin is not supported應用程序連接mysql docker一直報錯:this authentication plugin is not supported。 google發現,原來是mysql新版本(8.0以上)將root用戶使用的plugin更新成caching_sha2_password。 登錄mysql輸入如下命令可以看...https://blog.csdn.net/c359719435/article/details/80432508【糾錯】——mysql Authentication plugin ‘caching_sha2_password‘ is not supported問題處理_有情懷的機械男的博客-CSDN博客mysql Authentication plugin ‘caching_sha2_password’ is not supported問題處理使用mysql8.0版本,登錄失敗,提示 Authentication plugin ‘caching_sha2_password’ is not supported。原因是在MySQL 8.0以后,默認的密碼加密方式是caching_sha2_password而不是mysql_native_password。解決方法:1.登錄mysql數據庫 mys
https://blog.csdn.net/qq_45769063/article/details/122322667
① 打開命令行窗口——cmd
② 登錄mysql數據庫
mysql -uroot -p
?
③ 查看不同用戶名的身份驗證方式select user,plugin from mysql.user;
select user,plugin from mysql.user;
可以看到數據庫有5個用戶名(user),因為我們創建數據池的時候用的是root用戶名,所以我們看一下root用戶名的身份驗證方式(plugin),root有兩個用戶名,且有一個驗證方式是caching_sha2_password,因此我們需要修改它
?
?④ 將caching_sha2_password修改為mysql_native_password驗證方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
?
再運行select user,plugin from mysql.user;查看不同用戶名的身份驗證方式,如下圖所示,可以發現兩個root用戶名的驗證方式都已經修改成為mysql_native_password了。
?
⑤ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';?語句解釋
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
這行代碼有兩層含義,第一:修改root的密碼為’root’,摒棄原來的舊密碼。第二:使用mysql_native_password對新密碼進行編碼。
注:利用這種方式解決了我的問題?