我只是不能理解MYSQL和WORPRESS之间的连接行为。我想,变量WORDPRESS_DB_PASSWORD和MYSQL_PASSWORD的值应该是匹配的。当我使用以下yaml ( wordpress_db_password和mysql_password的值相同)运行docker-compose时,我得到一个连接错误:
version: '3.3'
services:
mysql_database:
image: mysql:latest
volumes:
- mysql_database_volume:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: wordpress_database
MYSQL_USER: wordpressuser
MYSQL_PASSWORD: somepassword
wordpress:
depends_on:
- mysql_database
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: mysql_database:3306
WORDPRESS_DB_USER: wordpressuser
WORDPRESS_DB_PASSWORD: somepassword
volumes:
mysql_database_volume: 但是,当我将wordpress_db_password的值改为"wordpress“时,它就可以工作了。这里我漏掉了什么?它在这里只适用于这个值。有什么想法吗?
version: '3.3'
services:
mysql_database:
image: mysql:latest
volumes:
- mysql_database_volume:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: wordpress_database
MYSQL_USER: wordpressuser
MYSQL_PASSWORD: somepassword
wordpress:
depends_on:
- mysql_database
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: mysql_database:3306
WORDPRESS_DB_USER: wordpressuser
WORDPRESS_DB_PASSWORD: wordpress
volumes:
mysql_database_volume: 发布于 2020-10-15 15:39:10
你的第二个例子对我不起作用。但我以你的第一个例子为例,添加了一个wordpress environment变量WORDPRESS_DB_NAME: wordpress_database,它可以工作。Wordpress只是没有数据库名称。作为参考,我查看了Quickstart: Compose and WordPress Docker文档。
如果您仍然有问题,请尝试停止并删除容器,然后删除卷。您可以先使用docker ps -a,然后使用docker stop /ID/ && docker rm /ID/获取容器ID。然后是卷ID docker volume ls,然后是docker volume rm /ID/。
另外,我想指出的是,当启动时,wordpress会记录多个"MySQL连接错误“错误,直到数据库准备就绪。
https://stackoverflow.com/questions/64364495
复制相似问题