python mysql 8.0_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:\\web\\mysql-8.0.16-winx64

# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错

# datadir=D:\\web\\sqldata

# 允许最大连接数

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值