sourcecode

word press를 mariadb(도커)에 연결할 수 없습니다.

copyscript 2023. 9. 16. 09:50
반응형

word press를 mariadb(도커)에 연결할 수 없습니다.

저는 두 개의 컨테이너를 가지고 있는데, 하나는 mariadb용이고 다른 하나는 워드프레스용입니다.

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

그리고 이것은 워드프레스를 위한 것입니다.

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 root에 로그인하고 데이터베이스와 사용자를 만들고 다음 명령을 실행했습니다.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.
# ...

워드프레스를 방문하면 다음과 같은 메시지가 나타납니다.

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, 하지만 그의 것도 작동하지 않았고, 똑같은 오류 메시지도 나타났어요.

한 달 후, 저는 이 문제로 돌아가 환경 변수를 인용문에 넣으려고 했는데, 예상대로 효과가 있었습니다.

그래서 대신:

  - WORDPRESS_DB_USER="${WORDPRESS_DB_USER}"

그럴 것 같네요.

  - "WORDPRESS_DB_USER=${WORDPRESS_DB_USER}"

언급URL : https://stackoverflow.com/questions/73358679/cant-connect-wordpress-to-mariadb-docker

반응형