日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

发生身份验证错误_Python MySQL8.0 错误

發布時間:2025/3/8 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发生身份验证错误_Python MySQL8.0 错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python MySQL8.0 錯誤:authentication plugin 'calling_sha2_password' is not supported.

Python3 進行到 python3 mysql(mysql-connector),然后安裝mysql-8.0.16,照著示例程序運行 python,遇到這個大大的問題:

authentication plugin 'calling_sha2_password' is not supported.

在網上找了無數答案,現在來總結一下。

根目錄下新建 my.ini 文件,設置 MySQL 復制以下配置信息到新建的 my.ini 文件中。

[mysqld]
# 設置3306端口
port = 3306
# 設置mysql的安裝目錄
basedir=D:webmysql-8.0.16-winx64
# 設置 mysql數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
# datadir=D:websqldata
# 允許最大連接數
max_connections=20
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[client]
# 設置mysql客戶端連接服務端時默認使用的端口
port=3306
default-character-set=utf8

在 MySQL 8.0 中驗證插件和密碼加密方式發生了變化,caching_sha2_password 是默認的身份驗證插件而不是之前版本的 mysql_native_password。

使用指令:

use mysql;
select plugin,authentication_string from user;

查看。

因此如果需要保持之前的驗證方式并保持之前版本的密碼加密方式需要在配置文件中修改,暫不支持動態修改,需要重啟生效。即:

# 默認使用 mysql_native_password 插件認證
default_authentication_plugin=mysql_native_password 

將 8.0 已有的 sha2 密碼修改為 sha1 的模式:

# 修改加密規則為永不過期
#注意:password 改為你的密碼,別老老實實照抄,之前本人便以為 password 指代密碼不用改變,結果一通指令下去,mysql 登不上了,只好重新初始化數據庫
ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#更新一下用戶的密碼加密方式為之前版本的方式
ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'password';    
#刷新權限
FLUSH PRIVILEGES;

重啟,這是再看,已經修改了身份驗證插件。

這時再稍稍修改實例程序,便可以連接了:

import mysql.connector
mydb=mysql.connector.connect(
host="localhost",
user="ly",
passwd="123456",
auth_plugin='mysql_native_password'
)
print(mydb)

總結

以上是生活随笔為你收集整理的发生身份验证错误_Python MySQL8.0 错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。