📜  mysql Public Key Retrieval is not allowed - SQL (1)

📅  最后修改于: 2023-12-03 14:44:27.469000             🧑  作者: Mango

MySQL Public Key Retrieval is not allowed - SQL

当连接MySQL数据库时,如果出现Public Key Retrieval is not allowed错误,通常是因为MySQL服务器没有启用公钥检索,无法自动下载SSL证书。这是一个安全设置,可以避免潜在的安全风险和SSL证书的误导使用。

程序员需要了解该错误的产生原因、解决方法,以确保MySQL连接的顺畅和安全。

产生原因
  • MySQL服务器没有启用公钥检索,无法自动下载SSL证书。
  • 当使用MySQL Connector/J连接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
  1. 保存配置文件并重启MySQL服务。
方法二:禁用SSL

当无法启用公钥检索时,可以将SSL禁用,将连接变成非SSL连接。

Java应用程序

如果是使用Java应用程序连接MySQL服务器,可以在建立连接时设置useSSL=false。示例代码:

String url = "jdbc:mysql://localhost/test?useSSL=false";
Connection conn = DriverManager.getConnection(url, "root", "123456");

MySQL Workbench

如果在MySQL Workbench中连接MySQL服务器时遇到上述错误,可以在连接选项中禁用SSL,方法如下:

1.打开MySQL Workbench,点击“新建连接”。

2.在连接选项中,将“Use SSL”设置为“Never”。

3.保存连接配置并重新连接MySQL服务器。

总结

MySQL Public Key Retrieval is not allowed错误通常是由于MySQL服务器没有启用公钥检索。程序员可通过方法一启用该功能,或者通过方法二禁用SSL避免该错误。但是禁用SSL会带来一定的安全风险,应根据具体情况选择。