Intro
我在使用 DBeaver 连接本地 mysql server 的时候,连接失败,报错:Public Key Retrieval is not allowed
。
原因和解决
据 https://blog.csdn.net/white0718/article/details/131790493 所讲:mysql server 从 8.0
开始默认使用 caching_sha2_password
插件做密码加密工作。
解决方案有两种
- 先用某个具有权限的账号,登录到 mysql server,然后在服务器端修改这个密码加密要用到的插件,改成之前的
mysql_native_password
,然后客户端照常登录即可。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
本方案pass,因为我现在就是 root 登录不了。
- 客户端登录的时候,需要额外指定一个参数的值:
allowPublicKeyRetrieval=true
不管你是在命令行通过mysql
去登录,还是在编程语言中用 JDBC url 连接,还是用像 DBeaver 这样的 GUI 工具去连接,都需要指定那个参数。以下以 DBeaver 为例:
DBeaver 指定连接参数
右击连接 --> 编辑连接:
驱动属性 --> allowPublicKeyRetrieval=true --> 测试连接 --> (已连接)确定。
再看一下这个参数项:文章来源:https://www.toymoban.com/news/detail-860508.html
allowPublicKeyRetrieval=true
Allows special handshake round-trip to get an RSA public key directly from server.
允许指定握手的来回,用于从服务器端直接获取 RSA公钥。
连接成功后,再用 sql 命令查询一下 mysql server 版本:select version()
文章来源地址https://www.toymoban.com/news/detail-860508.html
到了这里,关于Public Key Retrieval is not allowed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!