MySQL 在Java中使用MySQL进行连接时 : Public Key Retrieval is not allowed错误
在Java中使用MySQL进行连接时,有时会遇到以下错误:
Public Key Retrieval is not allowed
造成这个错误的原因是MySQL版本的更改,它在MySQL 8中引入了一些新的安全特性。
阅读更多:MySQL 教程
解决方法
方法一:设置allowPublicKeyRetrieval=true
该错误的一个简单的解决方法是在MySQL连接字符串中设置allowPublicKeyRetrieval=true
。
String url = "jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true";
Connection conn = DriverManager.getConnection(url, "username", "password");
方法二:升级JDBC驱动程序
更新JDBC驱动程序也可能解决该问题。确保使用的是最新版本的MySQL Connector / J,可以从官方网站下载。
方法三:修改MySQL服务器设置
如果以上解决方法仍然不起作用,可以修改MySQL服务器的设置。MySQL服务器默认情况下不允许公钥检索。可以通过修改服务器配置文件my.cnf来解决此问题。
将以下行添加到my.cnf文件中:
[mysqld]
...
allow_public_key_retrieval = on
...
如果使用的是像Amazon RDS等托管服务,则必须要求管理员进行此更改。
以上是解决MySQL Connection Java – MySQL : Public Key Retrieval is not allowed错误的三种方法。希望本文对您有所帮助,如果有任何疑问或建议,请在下面的评论中留言!
总结
在连接MySQL时,还可能出现其他错误。如果无法解决问题,请仔细检查错误消息,尝试在Google中搜索类似的问题,并检查您的代码和连接字符串。如果遇到问题,请留言寻求帮助!