MySQL8报错:Public Key Retrieval is not allowed
时间: 2023-10-30 10:05:28 浏览: 385
这个错误通常是由于 MySQL 8 默认禁用了公钥检索所导致的。在 MySQL 8 中,默认情况下,连接 MySQL 数据库时不允许使用公钥检索来验证身份。
要解决这个问题,你可以尝试以下方法之一:
1. 在连接 URL 中添加 `allowPublicKeyRetrieval=true` 参数。例如:
```
jdbc:mysql://hostname:port/database?allowPublicKeyRetrieval=true
```
2. 修改 MySQL 8 的配置文件 `my.cnf` 或 `my.ini`,将 `mysql_native_password` 改为 `caching_sha2_password`。打开配置文件,在 `[mysqld]` 部分添加或修改以下行:
```
default_authentication_plugin=caching_sha2_password
```
然后重启 MySQL 服务。
希望这些方法可以帮助你解决问题。如果还有其他疑问,请随时提问。
相关问题
DBeaver 连接mysql 报错:Public Key Retrieval is not allowed
DBeaver 是一个流行的数据库管理工具,用于管理和开发多种类型的数据库,包括 MySQL。当您尝试使用 DBeaver 连接到 MySQL 服务器时,如果收到 "Public Key Retrieval is not allowed" 的错误,这通常意味着 DBeaver 需要从 MySQL 服务器获取 SSL 密钥来进行安全连接,但服务器没有配置允许此操作。
这个错误通常出现在以下几个情况:
1. **MySQL 配置**:MySQL 需要启用 SSL,并且可能需要将客户端证书添加到服务器的 `ssl-ca` 或 `ssl_client_CA` 设置中,以允许公共证书的接收。
2. **DBeaver 设置**:确保 DBeaver 中的 MySQL 连接配置正确,包括 SSL 密钥和证书路径。
3. **防火墙或安全组**:检查本地防火墙设置,确保 DBeaver 能够访问 MySQL 的 SSL 端口(默认是 3306)。
4. **证书问题**:如果 MySQL 使用的是自签名证书,DBeaver 可能需要接受这个证书,这需要在 DBeaver 的安全设置中进行手动信任。
解决这个问题,你可以按照以下步骤操作:
1. 检查 MySQL 的 SSL 配置,确保 `--ssl-ca` 和 `--ssl-cert` 设置正确。
2. 更新 DBeaver 的 SSL 证书信任设置。
3. 如果是自签名证书,考虑导入到 DBeaver 或系统中的可信证书存储。
4. 如果是网络问题,确认防火墙或安全组规则允许访问。
如果你能提供具体的错误信息,我可以提供更详细的帮助。有关于 SSL 或 DBeaver 设置的其他问题吗?
报错:Public Key Retrieval is not allowed
报错:"Public Key Retrieval is not allowed"是由于禁用了SSL/TLS协议传输导致的。在禁用SSL/TLS协议传输的情况下,客户端无法主动获取服务器的公钥,从而引发了该错误。这种情况通常发生在以下场景下:新建数据库用户首次登录、数据库用户名密码发生改变后登录、服务器端刷新缓存。解决该错误可以采取以下方案:
1. 在条件允许的情况下,不要禁用SSL/TLS协议,即不要在CLI客户端使用--ssl-mode=disabled或在JDBC连接串中加入useSSL=false参数。
2. 如果必须禁用SSL/TLS协议,可以尝试使用CLI客户端登录一次MySQL数据库制造登录缓存。
3. 在JDBC连接串中加入allowPublicKeyRetrieval=true参数,允许客户端获取服务器的公钥。
4. 在CLI客户端连接时加入--get-server-public-key参数,指定从服务器获取公钥。
5. 在CLI客户端连接时加入--server-public-key-path=file_name参数,指定存放在本地的公钥文件。
需要注意的是,启用AllowPublicKeyRetrieval=True可能会存在安全风险,因为恶意代理可能执行中间人攻击以获取明文密码。因此,默认情况下AllowPublicKeyRetrieval为False,必须显式启用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [MySQL 8.0 Public Key Retrieval is not allowed 错误的原因及解决方法](https://blog.csdn.net/u011447905/article/details/121441165)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [Public Key Retrieval is not allowed解决](https://blog.csdn.net/weixin_55599565/article/details/125140094)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文