无法将wordpress连接到mariadb(docker)

oknwwptz  于 2022-11-08  发布在  WordPress
关注(0)|答案(1)|浏览(396)

我有两个容器,一个用于mariadb,另一个用于wordpress。
我将此配置用于mariadb:

version: "3"
services:
  mariadb:
    image: mariadb
    container_name: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
    volumes:
      - ./data:/var/lib/mysql
    ports:
      - "127.0.0.1:3306:3306"
    restart: unless-stopped
    networks:
      - web

networks:
  web:
    external: true

这是给WordPress的

version: '3'

services:
  # Wordpress
  myWordpress:
    image: wordpress:php8.1
    container_name: myWordpress
    hostname: myWordpress
    restart: unless-stopped
    volumes: [ './data:/var/www/html' ]
    environment:
      - WORDPRESS_DB_HOST=mariadb
      - WORDPRESS_DB_USER="${WORDPRESS_DB_USER}"
      - WORDPRESS_DB_PASSWORD="${WORDPRESS_DB_PASSWORD}"
      - WORDPRESS_DB_NAME="${WORDPRESS_DB_NAME}"
    networks:
      - web
networks:
  web:
    external: true

我已经创建了网络web并登录到mysql根目录,创建了数据库& user并执行了以下命令:GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'%'; .
然后我用那个用户和密码登录了mysql。

docker exec -it mariadb bash
mysql -u wp_user -pMyPassword

# Welcome to the MariaDB monitor.  Commands end with ; or \g.

# ...

当我访问WordPress时出现该问题,我看到以下消息:

Warning: mysqli_real_connect(): (HY000/1045): Access denied for user '"wp_user"'@'172.16.32.5' (using password: YES) in /var/www/html/wp-includes/wp-db.php on line 1753
Access denied for user '"wp_user"'@'172.16.32.5' (using password: YES)

我觉得问题出在WORDPRESS_DB_HOST变量中,我将其指向mariadb容器名称,我还尝试将其指向localhost,因为两个容器共享同一个网络web,但他的也不起作用,并出现了相同的错误消息。

wydwbb8l

wydwbb8l1#

一个月后,我回到这个问题,并尝试把环境变量在引号中,它的工作和预期的一样。
所以改为:

- WORDPRESS_DB_USER="${WORDPRESS_DB_USER}"

应该是

- "WORDPRESS_DB_USER=${WORDPRESS_DB_USER}"

相关问题