Mysql8报错:Public Key Retrieval is not allowed
本文最后更新于 2024-08-27,文章内容可能已经过时。
一、问题描述
连接Mysql数据库的时候,报错内容如下:
二、解决方案
mysql 8.0 默认使用 caching_sha2_password 身份验证机制 (即从原来mysql_native_password 更改为 caching_sha2_password)
从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。 客户端不支持新的加密方式。 修改用户的密码和加密方式。
方案一
在命令行模式下进入mysql,输入以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
或者
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
然后就可以正常连接了。
方案二
在Springboot项目配置数据源的时候直接将属性allowPublicKeyRetrieval设置为true即可
server.port=8080
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/database?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 心流铭刻
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果