如何从wordpress docker建立数据库连接

问题描述 投票:0回答:1

我尝试使用本指南运行一个docker compose wordpress:https://docs.docker.com/compose/wordpress/

这是指南中描述的yaml文件:

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_DEBUG: "true"
volumes:
    db_data: {}

我跑了之后

"docker-compose up -d" 

命令,我在浏览器中转到“http://localhost:8000/”并获得“建立数据库连接错误”的白页。根据指南,wordpress应该在这一点上向我展示5分钟的安装。当我使用wordpress debug true运行容器时,会显示以下错误消息:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /var/www/html/wp-includes/wp-db.php on line 1612

拒绝连接

我现在用

docker exec it container_id /bin/bash 

并输入“mysql -p”。现在我使用docker compose文件中的MYSQL_ROOT_PASSWORD,但是我被拒绝访问(“拒绝访问用户'root'@'localhost'(使用密码:YES)”)

我不知道我之前做了什么,但在某些时候它工作,我列出了数据库和mysql.users和数据库和用户在那里。

所以我甚至不知道,这里的问题是什么......

为什么我不能再以root用户身份访问?有谁知道该怎么办?

编辑:改变端口回到3306,我试过3308只是为了看看这可能是一个端口问题

mysql wordpress docker docker-compose
1个回答
0
投票

我发现了另一篇文章,他们使用了这个yaml。仍不确定为什么会这样,但确实如此。

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - 8000:80
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data: {}
© www.soinside.com 2019 - 2024. All rights reserved.