📅  最后修改于: 2023-12-03 14:44:27.469000             🧑  作者: Mango
当连接MySQL数据库时,如果出现Public Key Retrieval is not allowed
错误,通常是因为MySQL服务器没有启用公钥检索,无法自动下载SSL证书。这是一个安全设置,可以避免潜在的安全风险和SSL证书的误导使用。
程序员需要了解该错误的产生原因、解决方法,以确保MySQL连接的顺畅和安全。
useSSL=false
避免该错误。但是这样会将连接变成非SSL连接,带来一定的安全风险。在MySQL服务器上启用公钥检索功能,以便SSL客户端可自动检索服务器的公钥。需要通过以下步骤:
1.打开MySQL 配置文件/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf。
2.在[mysqld]节点下添加以下内容:
# MySQL 8.0
[mysqld]
ssl-mode=PREFERRED
当无法启用公钥检索时,可以将SSL禁用,将连接变成非SSL连接。
如果是使用Java应用程序连接MySQL服务器,可以在建立连接时设置useSSL=false
。示例代码:
String url = "jdbc:mysql://localhost/test?useSSL=false";
Connection conn = DriverManager.getConnection(url, "root", "123456");
如果在MySQL Workbench中连接MySQL服务器时遇到上述错误,可以在连接选项中禁用SSL,方法如下:
1.打开MySQL Workbench,点击“新建连接”。
2.在连接选项中,将“Use SSL”设置为“Never”。
3.保存连接配置并重新连接MySQL服务器。
MySQL Public Key Retrieval is not allowed错误通常是由于MySQL服务器没有启用公钥检索。程序员可通过方法一启用该功能,或者通过方法二禁用SSL避免该错误。但是禁用SSL会带来一定的安全风险,应根据具体情况选择。