docker mysqlPublic Key Retrieval is not allowed
时间: 2023-08-19 12:09:43 浏览: 232
这个错误通常在使用 Docker 运行 MySQL 容器时出现,它表示 MySQL 配置不允许使用公钥检索。为了解决这个问题,你可以尝试以下几种方法:
1. 在 Docker Compose 文件中的 MySQL 服务配置中添加 `allowPublicKeyRetrieval=true` 参数,示例如下:
```yaml
services:
mysql:
image: mysql
command: --allow-public-key-retrieval=true
```
2. 如果你在命令行中直接运行 MySQL 容器,可以通过添加 `--allow-public-key-retrieval=true` 参数来解决问题,示例如下:
```bash
docker run --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p 3306:3306 mysql --allow-public-key-retrieval=true
```
这些方法应该能够解决 "Public Key Retrieval is not allowed" 的问题。如果问题仍然存在,请提供更多的详细信息,以便我能够更好地帮助你解决。
相关问题
docker mysql映射 Public Key Retrieval is not allowed Public Key Retrieval is not allowed
这个问题可能是因为 MySQL 8.0 默认使用了 caching_sha2_password 身份验证插件,而该插件需要使用公钥来进行身份验证。可以尝试修改 MySQL 用户的身份验证插件为 mysql_native_password,方法如下:
1. 进入 MySQL 容器内部:`docker exec -it <container_name> bash`
2. 登录 MySQL:`mysql -u <username> -p`
3. 修改用户的身份验证插件:`ALTER USER '<username>'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';`
4. 刷新权限:`FLUSH PRIVILEGES;`
5. 退出 MySQL:`exit`
6. 退出容器:`exit`
docker-compose安装mysql 报错Public Key Retrieval is not allowed
你好!关于你的问题,"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" 的错误。如果问题仍然存在,请提供更多详细信息,以便我能够帮助你进一步解决问题。
阅读全文