之前使用DBeaver数据库客户端连接MySQL是没问题的,一段时间没使用(不知道是不是更换了系统,之后重装了客户端的原因,反正是有所变动),再次连接数据库时竟然报错:
Public Key Retrieval is not allowed
什么意思呢?百度翻译一下:
不允许检索公钥
那这个“不允许检索公钥”到底是什么意思呢?这完全是,每个字我都认识,连在一起我竟然不知道是什么意思了。
我们打开mysqlconnector的官网:
https://mysqlconnector.net/connection-options/
直接使用翻译软件,翻译整个网页,找到“其它选项-允许公钥检索,AllowPublicKeyRetrieval”,我们看到它的默认值是false,查看描述:
如果用户账号使用
sha256_password
认证,传输过程中必须保护密码;TLS 是首选机制,但如果它不可用,则将使用 RSA 公钥加密。要指定服务器的 RSA 公钥,请使用ServerRSAPublicKeyFile
连接字符串设置,或设置AllowPublicKeyRetrieval=True
为允许客户端自动从服务器请求公钥。请注意,这AllowPublicKeyRetrieval=True
可能允许恶意代理执行 MITM 攻击以获取明文密码,因此False
默认情况下必须显式启用它。
意思呢大致就这个意思,具体的呢,咱也不用太关注,通过其它文章的介绍呢,在通过其它方式连接数据库的时候也会出现这种情况,而不只是通过DBeaver连接数据库。那这个时候解决方案也是一样的,就是将:AllowPublicKeyRetrieval=True
。
具体可以参考:关于JDBC连接数据库时出现的Public Key Retrieval is not allowed错误
当通过DBeaver连接数据库报这个错误的时候,我们如何解决呢?
右键点击你的数据库连接:
会弹出“编辑连接”
然后点击“驱动属性”
将“allowPublicKeyRetrieval
”设置为true。上面的图片是我修改之后的结果,改为true之后数据库就可以连接了。
支持,问题解决完毕。
总结:
右键数据库——》编辑连接——》驱动属性——将“allowPublicKeyRetrieval
”设置为true
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2727.html