programing

docker- compose mysql 컨테이너에서 워드프레스 컨테이너에 대한 액세스를 거부함

newsource 2023. 10. 27. 21:57

docker- compose mysql 컨테이너에서 워드프레스 컨테이너에 대한 액세스를 거부함

mysql 5.7 container에서 wordpress container에 대한 접근을 거부하는 문제가 있습니다.저는 도커 컴포지트를 사용하고 있고 맥 OSX에서 도커를 실행하고 있습니다.도커는 사용 가능한 최신 버전이어야 합니다.

여기 제 도커작곡입니다.

version: '2'

services:
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    container_name: wordpress
    ports:
      - "8000:80"
      - "443:443"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: blog
      WORDPRESS_DB_USER: blog_admin
      WORDPRESS_DB_PASSWORD: userpasswd
    networks:
      - wordpress_net
  db:
    image: mysql:5.7
    container_name: db
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpasswd
      MYSQL_DATABASE: blog
      MYSQL_USER: blog_admin
      MYSQL_PASSWORD: userpasswd
    networks:
      - wordpress_net
networks:
  wordpress_net:
volumes:
  db_data:

db 컨테이너의 로그는 다음과 같습니다.

2017-05-12T23:28:06.138429Z 321 [Note] Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES)

워드프레스 컨테이너의 로그는 다음과 같습니다.

MySQL Connection Error: (1045) Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES)
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES) in - on line 22

도커프:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES
1b02f0146fe7        wordpress:latest    "docker-entrypoint..."   25 minutes ago      Up 26 seconds       0.0.0.0:443->443/tcp, 0.0.0.0:8000->80/tcp   wordpress
5d932ed6c269        mysql:5.7           "docker-entrypoint..."   25 minutes ago      Up 25 minutes       0.0.0.0:3306->3306/tcp                       db

시도해 본 내용:

  1. 도커 호스트를 다시 시작하는 중입니다.
  2. 도커 - compose rm -v 를 다시 도커 - compose합니다.
  3. 워드프레스 컨테이너 외부에 있는 사용자 자격 증명 및 루트 자격 증명으로 로그인합니다.
  4. 도커 이미지를 제거하고 처음부터 다시 꺼냅니다.
  5. 루트 인증 정보 사용WORDPRESS_DB_HOST, WORDPRESS_DB_USER

db 컨테이너에 접속하면 db의 모든 환경을 볼 수 있습니다.워드프레스 컨테이너가 계속 자체적으로 다시 시작됩니다.스택 오버플로에서 플러시 권한 및 새 사용자 계정 설정을 권장하는 답변을 하나 보았지만 다른 컴퓨터에서 이 문제가 다시 나타날 수 있는 잘못된 행동을 하고 있는지 알고 싶습니다.

변경 사항:

WORDPRESS_DB_USER: blog_admin
WORDPRESS_DB_PASSWORD: userpasswd

받는 사람:

WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: rootpasswd

그 다음은:

docker-compose up -d --build

사용자 이름Blog_admin에 접근할 수 없는create database.

내가 한 일:

docker-compose rm -v내가 항상 사용해왔던 것처럼 나에게 효과가 없었습니다.docker-compose down컨테이너를 폐쇄할 수 있습니다.그리고 이것이 문제의 근원이라고 생각합니다.

  • 내 폴더와 함께 폴더를 삭제했습니다.docker-compose.yml그리고 새로운 것을 만들었습니다.
  • 그런 다음 구성만으로 작성 파일을 만들었습니다.mysql컨테이너, 그것을 발사하고 연결을 시도했습니다.mysql서버 이름:root.
  • 됐습니다.그 다음에 컨테이너를 멈추어야 했습니다.docker stop containerID.
  • 그리고 뛰었습니다.docker-compose rm -v(어떤 이유에서인지)rm -v컨테이너를 중지할 때만 작동합니다.사용 시 사용 안 함docker-compose down이것은 제가 db컨테이너용 볼륨을 사용하고 wordpress container config로 yml 파일을 완성하면서 db의 상태가 지속되게 만들었습니다.

저는 결국 이런 일을 당했습니다.

version: '2'

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress-blog
    depends_on:
      - mysql
    ports:
      - "8000:80"
      - "443:443"
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: admin
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: wordpress
  mysql:
    image: mysql:5.7
    container_name: mysql-db
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: admin
      MYSQL_PASSWORD: password 

참고: 이전에 워드프레스 컨테이너 뿐만 아니라 db 컨테이너 자체에서 데이터베이스에 연결하는 데 문제가 있었습니다.위에서 설명한 방법이 이 문제를 해결하는 데 도움이 되었습니다.

간단한 솔루션 변경

volumes:
- db_data:/var/lib/mysql

와 비슷한 정도로

volumes:
- db_data:/var/lib/mysqlx

언급URL : https://stackoverflow.com/questions/43947824/docker-compose-mysql-container-denies-access-to-wordpress-container