MySql教程

【MySQL】MySQL 8.0 Public Key Retrieval is not allowed

本文主要是介绍【MySQL】MySQL 8.0 Public Key Retrieval is not allowed,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

最简单的解决方法是在连接后面添加 allowPublicKeyRetrieval=true

34f67fb22e279de26331b1b0f85f79f1.png

文档中(https://mysql-net.github.io/MySqlConnector/connection-options/)给出的解释是:

如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;可以在连接中通过 ServerRSAPublicKeyFile 指定服务器的 RSA 公钥,或者AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥;但是需要注意的是 AllowPublicKeyRetrieval=True可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启
4185bb77e69224d809b7ce332c3dff0e.png

这篇关于【MySQL】MySQL 8.0 Public Key Retrieval is not allowed的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!