连接mysql8.0报错Public Key Retrieval is not allowed
时间: 2023-11-13 19:58:11 浏览: 347
当连接MySQL8.0时,如果出现Public Key Retrieval is not allowed的错误提示,可以尝试以下两种方法解决:
1. 在连接数据库的配置文件中加上allowPublicKeyRetrieval=true。
2. 将密码方式从默认的caching_sha2_password改为mysql_native_password。这可以通过修改MySQL用户的密码方式来实现。
相关问题
DBeaver连接mysql8.0报错Public Key Retrieval is not allowed
DBeaver连接mysql8.0报错Public Key Retrieval is not allowed是由于MySQL 8.0默认启用了caching_sha2_password插件,而DBeaver默认使用mysql-connector-java 5.x版本,该版本不支持caching_sha2_password插件。解决方法如下:
1.升级mysql-connector-java到8.x版本。
2.在MySQL 8.0中创建一个新用户并授权,使用该用户连接MySQL。
3.修改MySQL 8.0的加密方式为mysql_native_password。可以通过以下命令修改:
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中,user为你的用户名,localhost为你的主机名,password为你的密码。
连接docker配置的mysql8.0 报错Public Key Retrieval is not allowed
当你尝试连接到 Docker 配置的 MySQL 8.0 数据库时,如果遇到 "Public Key Retrieval is not allowed" 的错误,这是因为默认情况下 MySQL 8.0 不允许使用不安全的连接。你可以尝试以下解决方法:
1. 在连接 MySQL 时,使用 `--ssl-mode` 参数指定为 `DISABLED`,这将禁用 SSL 连接。例如:
```
mysql -u root -p --ssl-mode=DISABLED
```
2. 如果你使用的是 MySQL 客户端工具,如 MySQL Workbench,可以在连接配置中设置 SSL 模式为 "Disabled"。
3. 如果你想启用 SSL 连接,可以执行以下步骤来解决此问题:
- 首先,进入到 MySQL 容器的 bash shell:
```
docker exec -it mysql-container bash
```
- 然后,进入 MySQL 控制台:
```
mysql -u root -p
```
- 在 MySQL 控制台中,运行以下命令禁用 SSL 模式:
```
SET GLOBAL require_secure_transport=OFF;
```
- 最后,退出 MySQL 控制台并重启 MySQL 容器:
```
exit
docker restart mysql-container
```
重启后,尝试连接到 MySQL 数据库,应该不再报 "Public Key Retrieval is not allowed" 错误。
请注意,禁用 SSL 连接可能会降低数据传输的安全性。如果你需要使用安全的连接,建议配置正确的 SSL 证书和密钥,并使用正确的 SSL 配置。
阅读全文
相关推荐
















