Mysql链接异常 | [08001] Public Key Retrieval is not allowed

Datagrid报错

[08001] Public Key Retrieval is not allowed

这个错误通常是由于 MySQL 8.0 中的新特性导致的。默认情况下,MySQL 8.0 使用 caching_sha2_password 作为认证插件,而你需要在连接 URL 中明确允许公钥检索或者使用老版本的认证方式 mysql_native_password

show databases;

show tables;

use mysql;

select host,user from user;

可以直接把user表的root账户对应的host改为'%'就可以在Navicat上远程登录了,就是SQL的update语句,不用搞得那么复杂

update user set host = '%' where host = 'localhost' and user = 'root';

刷新

flush privileges;

 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的mysql密码';

FLUSH PRIVILEGES;


 重新打开Datagrid,报错消失了

[08001] Public Key Retrieval is not allowedMySQL数据库的一个见错误。这个错误通常发生在尝试连接到MySQL数据库时,表示不允许进行公钥检索。 这个错误可能有以下几个原因: 1. MySQL版本问题:在某些MySQL版本中,默认情况下不允许进行公钥检索。这可能是因为安全性设置的原因。可以通过修改MySQL配置文件或者使用适当的连接选项来解决这个问题。 2. SSL/TLS配置问题:如果MySQL服务器启用了SSL/TLS加密连接,并且客户端没有正确配置SSL/TLS选项,就会导致此错误。需要确保客户端的SSL/TLS配置与服务器的配置相匹配。 3. 用户权限问题:某些情况下,用户可能没有足够的权限来进行公钥检索操作。需要确保用户具有适当的权限来执行所需的操作。 解决这个问题的方法包括: 1. 修改MySQL配置文件:可以尝试在MySQL配置文件中添加或修改以下行: ``` [client] allowPublicKeyRetrieval=true ``` 然后重新启动MySQL服务。 2. 在连接字符串中添加选项:如果使用编程语言连接到MySQL数据库,可以在连接字符串中添加选项来允许公钥检索。具体的选项名称和语法可能因编程语言而异,请参考相应的文档。 3. 检查SSL/TLS配置:如果使用SSL/TLS加密连接,需要确保客户端的SSL/TLS配置正确,并与服务器的配置相匹配。 4. 检查用户权限:确保用户具有执行公钥检索操作所需的适当权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值