gpt4 book ai didi

mysql - Docker mysql 镜像 : periodic access denied for root

转载 作者:行者123 更新时间:2023-11-28 23:14:28 25 4
gpt4 key购买 nike

我使用默认的 mysql 镜像作为多容器应用程序中的一个容器与 docker compose。我最近开始看到每秒都会记录一条周期性消息。消息是:

[Note] Access denied for user 'root'@'localhost' (using password: NO)

并且前面有时间戳。 docker-compose.yml中服务配置如下:

 image: "mysql:5.7.18"
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --port=$MYSQL_CONTAINER_PORT]
expose:
- "${MYSQL_CONTAINER_PORT}"
volumes:
- ${MYSQL_DATA}:/var/lib/mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
ports:
- "${MYSQL_HOST_PORT}:${MYSQL_CONTAINER_PORT}"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 5s
retries: 10

我在构建容器镜像时特意设置了一个 root 密码,应用程序可以通过我在环境部分设置的用户名和密码正常访问数据库。

我的应用程序中没有任何内容应该尝试以 root 身份访问 mysql 镜像,关于如何找出这些尝试以 root 身份无密码登录的来源有什么想法吗?

如果有帮助,请将 docker-compose.yml 文件设置为版本 2.1。其他两个容器是 (1) flask 应用程序,以及 (2) nginx 网络服务器,它也是该应用程序的代理服务器。

最佳答案

您的问题出在 healthcheck 命令中,Docker 尝试使用没有密码的 root 用户执行命令:

image: "mysql:5.7.18"
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --port=$MYSQL_CONTAINER_PORT]
expose:
- "${MYSQL_CONTAINER_PORT}"
volumes:
- ${MYSQL_DATA}:/var/lib/mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
ports:
- "${MYSQL_HOST_PORT}:${MYSQL_CONTAINER_PORT}"
healthcheck:
test: ["CMD", "mysqladmin", "-u$MYSQL_USER", "-p$MYSQL_PASSWORD", "ping", "-h", "localhost"]
timeout: 5s
retries: 10

关于mysql - Docker mysql 镜像 : periodic access denied for root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44486723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com