提问人:Cqfd83 提问时间:10/3/2023 最后编辑:Cqfd83 更新时间:10/9/2023 访问量:95
Docker 和 wordpress - 建立数据库连接时出错
Docker & wordpress - Error establishing a database connection
问:
我发现许多关于我的问题已解决的主题,但我仍然无法解决它。这可能是另一个问题,或者很可能是我没有设法弄清楚出了什么问题。经过数周的测试,我确实尝试公开寻求一些支持。
我正在尝试在我的个人服务器(Ubuntu 22.04)上设置一个wordpress。
下面是我的docker-compose文件:
version: '3'
services:
wp-db:
container_name: wp-mysql_container
image: mysql:latest
restart: unless-stopped
environment:
TZ: "Europe/Paris"
MYSQL_ROOT_PASSWORD: ZZZZ
MYSQL_USER: mywpuser
MYSQL_DATABASE: mywpdb
MYSQL_PASSWORD: XXXX
MYSQL_TCP_PORT: 3307
volumes:
- ./wp-db_data:/var/lib/mysql
ports:
- 3307:3307
wordpress:
container_name: wordpress_container
image: wordpress:latest
restart: always
depends_on:
- wp-db
ports:
- 8082:80
environment:
WORDPRESS_DB_HOST: wp_db:3307
WORDPRESS_DB_USER: mywpuser
WORDPRESS_DB_PASSWORD: XXXX
WORDPRESS_DB_NAME: mywpdb
volumes:
- ./wordpress:/var/www/html
- ./wordpress_logs:/var/log/apache2
wp-phpmyadmin:
container_name: wp-phpmyadmin_container
image: phpmyadmin:latest
depends_on:
- wp-db
links:
- wp-db:wp-db
ports:
- 8083:80
environment:
UPLOAD_LIMIT: 100000000
restart: unless-stopped
volumes:
wordpress:
wordpress_logs:
wp-db:
wp-db_data:
当我尝试访问phpmyadmin的wordpress时,我收到错误消息“ 数据库错误:建立数据库连接时出错”
任何帮助将不胜感激,谢谢
我试图关注这些相关主题:
在许多其他人中...
编辑: 2023/10/09 现在我的 docker-compose 就是这样并且正在工作:
version: '3.8'
services:
wordpress:
container_name: wordpress_container
image: wordpress:latest
restart: always
ports:
- 8082:80
environment:
WORDPRESS_DB_HOST: wp_db_mysql
WORDPRESS_DB_USER: qqqqqqqqqqq
WORDPRESS_DB_PASSWORD: aaaaaaaaaaaaaa
WORDPRESS_DB_NAME: yyyyyyyyyyy
volumes:
- wp_data:/var/www/htmlqsdgjuytac
wp_db_mysql:
container_name: wp_mysql_container
image: mysql:5.7
restart: always
ports:
- 3307:3307
environment:
MYSQL_DATABASE: yyyyyyyyyyy
MYSQL_ROOT_PASSWORD: bbbbbbbbbb
MYSQL_USER: qqqqqqqqqqq
MYSQL_PASSWORD: aaaaaaaaaaaaaa
volumes:
- db_data:/var/lib/mysql
wp_phpmyadmin:
container_name: wp_phpmyadmin_container
image: phpmyadmin/phpmyadmin:latest
depends_on:
- wp_db_mysql
ports:
- 8083:80
restart: always
environment:
PMA_HOST: mysql
PMA_PORT: 3307
PMA_ARBITRARY: 1
volumes:
wp_data:
db_data:
但是,当我尝试更改MYSQL_PASSWORD将所有“aaaaaaaa”更改为“nlkjazjeuzagq”时。我再次收到错误消息。 我试过了:
- docker-compose up -d
- docker-compose down & & docker image prune -af 后跟 docker-compose up -d。
显然,我不敢相信“aaaaaaaaaa”是唯一可接受的密码,但我无法重新初始化它。
答:
0赞
rd1218
10/8/2023
#1
我在这里也有同样的旅程,我的 WP 刚刚开始工作。请参阅下面的代码。
请注意,臭名昭著的消息“建立数据库连接时出错”仍可能发生:即使显示“完成”,如果您立即转到浏览器,您也会收到该消息。就我而言,我必须等待 ~5 秒,然后它接受连接(在此之前,会出现消息)。docker
另外,我注意到人们建议改用,所以我建议你改变它(在我看来,其他版本(8)应用于Oracle企业系统)。mysql:5.7
version: '3.8'
services:
wordpress:
container_name: wordpress
image: wordpress:latest
restart: always
ports:
- 9010:80
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: qqqqqqqqqqq
WORDPRESS_DB_PASSWORD: aaaaaaaaaaaaaa
WORDPRESS_DB_NAME: yyyyyyyyyyy
volumes:
- wp_data:/var/www/html
mysql:
container_name: mysqlWordpress
image: mysql:5.7
restart: always
ports:
- 3306:3306
environment:
MYSQL_DATABASE: yyyyyyyyyyy
MYSQL_ROOT_PASSWORD: bbbbbbbbbb
MYSQL_USER: qqqqqqqqqqq
MYSQL_PASSWORD: aaaaaaaaaaaaaa
volumes:
- db_data:/var/lib/mysql
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin/phpmyadmin:latest
depends_on:
- mysql
ports:
- 9012:80
restart: always
environment:
PMA_HOST: mysql
PMA_PORT: 3307
PMA_ARBITRARY: 1
volumes:
wp_data:
db_data:
评论
0赞
Cqfd83
10/9/2023
非常感谢rd1218。我确实设法使用了您的代码并且它起作用了。现在我不知道如何更改密码(请参阅我的编辑)。
0赞
rd1218
10/9/2023
也许这是另一个问题的情况?在我看来,原来的答案似乎是正确的(应该标记为答案)。无论如何,如果您无法使用初始容器,只需将其删除 () 并继续使用新容器即可。docker rm -f <id>
0赞
Cqfd83
10/10/2023
事实上,phpmyadmin仍然拒绝连接到数据库。我不知道这是映射连接的问题(我对此表示怀疑)还是登录问题,可能与我无法更改 mysql 密码和用户这一事实有关......
0赞
rd1218
10/11/2023
请删除两者并尝试一下。让我知道,然后我会检查更新答案。作为参考,这是我的工作命令:.PMA_HOST: mysql
PMA_PORT: 3307
docker container run -d --name phpMyAdmin --restart always -e PMA_ARBITRARY=1 -p 9000:80 --link mysql phpmyadmin/phpmyadmin:latest
0赞
Cqfd83
10/14/2023
rd1218,对不起回复晚了,我正在旅行。事实上,删除PMA_PORT是解决方案!祝贺。不过,我仍然无法更改您的登录参数。我相信我应该消灭一切,而不仅仅是杀死容器,但我没有找到正确的命令
评论
ports:
ports: ['3307:3306']
将不冲突的主机端口 3307 映射到容器内的标准数据库端口 3306。由于每个容器都具有隔离的网络环境,因此即使主机上有其他类似的数据库容器或数据库,容器也可以使用标准端口。