docker-compose安装mysql 报错Public Key Retrieval is not allowed
时间: 2023-07-17 13:10:52 浏览: 580
你好!关于你的问题,"Public Key Retrieval is not allowed" 错误通常是由于 MySQL 8.0 版本的默认配置引起的。在该版本中,默认情况下,不允许使用旧的身份验证插件进行公钥检索。
要解决这个问题,你可以尝试以下方法:
1. 在 `docker-compose.yml` 文件中,为 MySQL 服务添加 `command` 配置项,并启用 `--default-authentication-plugin=mysql_native_password` 选项。例如:
```yaml
services:
mysql:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
# 其他配置项...
```
2. 如果你已经运行了 `docker-compose up` 命令,请先停止容器。然后,删除 MySQL 数据卷(如果有的话)以清除现有的数据库文件。运行以下命令:
```bash
docker-compose down -v
```
3. 重新运行 `docker-compose up` 命令来启动 MySQL 容器。
这样应该能够解决 "Public Key Retrieval is not allowed" 的错误。如果问题仍然存在,请提供更多详细信息,以便我能够帮助你进一步解决问题。
相关问题
连接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 容器的终端或命令行:
```
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 配置。
docker-compose安装mysql8.0,并且解决Public Key Retrieval is not allowed报错问题
好的,下面是如何使用 Docker Compose 安装 MySQL 8.0 并解决 "Public Key Retrieval is not allowed" 报错问题的步骤:
1. 首先,创建一个名为 `docker-compose.yml` 的文件,并在其中添加以下内容:
```yaml
version: '3'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
ports:
- 3306:3306
```
请将 `your_root_password` 替换为你想要设置的 MySQL root 用户密码。
2. 保存并关闭 `docker-compose.yml` 文件。
3. 打开终端或命令提示符,进入包含 `docker-compose.yml` 文件的目录。
4. 运行以下命令启动 MySQL 容器:
```
docker-compose up -d
```
这将下载并启动 MySQL 8.0 容器。
5. 当容器成功启动后,你可以使用以下命令检查容器的状态:
```
docker-compose ps
```
你应该看到一个名为 `db` 的容器正在运行。
6. 如果你遇到 "Public Key Retrieval is not allowed" 报错问题,请尝试使用以下命令进入 MySQL 容器:
```
docker exec -it <container_id> bash
```
请将 `<container_id>` 替换为实际的容器 ID。可以通过运行 `docker ps` 命令来获取容器 ID。
7. 在进入容器的终端后,使用以下命令连接到 MySQL 服务器:
```
mysql -u root -p
```
然后输入之前在 `docker-compose.yml` 文件中设置的 MySQL root 用户密码。
8. 连接成功后,运行以下命令修改 MySQL 配置:
```
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
FLUSH PRIVILEGES;
```
请将 `your_new_password` 替换为你想要设置的新密码。
9. 退出 MySQL 终端:
```
exit
```
现在,你已经成功安装 MySQL 8.0 并解决了 "Public Key Retrieval is not allowed" 报错问题。
请记住,在步骤 7 和步骤 8 中,你可以根据自己的需求修改 MySQL 用户和密码。确保在生产环境中使用强密码,并采取其他安全措施来保护你的数据库。
阅读全文
相关推荐













