之前使用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
————————————————
版权声明:本文为CSDN博主「北冥牧之」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42971035/article/details/120247453