Public Key Retrieval is not allowed

这篇具有很好参考价值的文章主要介绍了Public Key Retrieval is not allowed。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Intro

我在使用 DBeaver 连接本地 mysql server 的时候,连接失败,报错:Public Key Retrieval is not allowed

Public Key Retrieval is not allowed,数据库,mysql,caching_sha2,mysql_native,login,mysqld,mysql server

原因和解决

据 https://blog.csdn.net/white0718/article/details/131790493 所讲:mysql server 从 8.0 开始默认使用 caching_sha2_password 插件做密码加密工作。
Public Key Retrieval is not allowed,数据库,mysql,caching_sha2,mysql_native,login,mysqld,mysql server
解决方案有两种

  1. 先用某个具有权限的账号,登录到 mysql server,然后在服务器端修改这个密码加密要用到的插件,改成之前的 mysql_native_password,然后客户端照常登录即可。
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

本方案pass,因为我现在就是 root 登录不了。

  1. 客户端登录的时候,需要额外指定一个参数的值:allowPublicKeyRetrieval=true

不管你是在命令行通过mysql去登录,还是在编程语言中用 JDBC url 连接,还是用像 DBeaver 这样的 GUI 工具去连接,都需要指定那个参数。以下以 DBeaver 为例:

DBeaver 指定连接参数

右击连接 --> 编辑连接:
Public Key Retrieval is not allowed,数据库,mysql,caching_sha2,mysql_native,login,mysqld,mysql server

驱动属性 --> allowPublicKeyRetrieval=true --> 测试连接 --> (已连接)确定。
Public Key Retrieval is not allowed,数据库,mysql,caching_sha2,mysql_native,login,mysqld,mysql server

再看一下这个参数项:

allowPublicKeyRetrieval=true
Allows special handshake round-trip to get an RSA public key directly from server.
允许指定握手的来回,用于从服务器端直接获取 RSA公钥。

Public Key Retrieval is not allowed,数据库,mysql,caching_sha2,mysql_native,login,mysqld,mysql server
连接成功后,再用 sql 命令查询一下 mysql server 版本:select version()
Public Key Retrieval is not allowed,数据库,mysql,caching_sha2,mysql_native,login,mysqld,mysql server文章来源地址https://www.toymoban.com/news/detail-860508.html

到了这里,关于Public Key Retrieval is not allowed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包