트러블 슈팅 : 워드프레스와 MySQL 도커 컨테이너 연동 문제

song yuheon·2023년 10월 22일
0

Trouble Shooting

목록 보기
39/57
post-custom-banner

문제 상황


  • 워드프레스에서 "Error establishing a database connection" 에러 발생했다

문제 파악


이미 3306을 로컬에서 사용하고 있어서 mysql컨테이너와 연결을 3307:3306으로 하였기에 문제가 발생 한 걸로 추정된다.
워드 프레스의 db 연결의 포트를 3307로 재설정하면 해결될 것으로 추정된다.


문제 환경


  1. MySQL 컨테이너 포트 3307을 외부로 노출하고 내부에서는 기본 포트 3306 사용한다.
    -> 즉 로컬의 3307포트와 컨테이너의 3306을 연결 시켰다는 의미이다.

    docker run -d -p 3307:3306 --env MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
  2. 워드프레스 컨테이너
    포트 8080을 외부로 노출하고, 내부에서는 기본 포트 80 사용한다.

    docker run -d -p 8080:80 -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp wordpress

해결


워드프레스 컨테이너의 포트설정을 아래처럼 바꾸면 된다.

docker run -d -p 8080:80 -e WORDPRESS_DB_HOST=host.docker.internal:3307 -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp wordpress

전체적인 흐름


워드프레스 컨테이너에서 MySQL 컨테이너로의 연결은 로컬 머신을 거쳐서 이루어진다.
워드프레스는 host.docker.internal:3307을 통해 MySQL에 접근하며 이는 로컬 머신의 3307 포트로 연결되어 있고 다시 MySQL 컨테이너의 3306 포트로 연결된다.


결과


  • 워드프레스가 MySQL 데이터베이스에 성공적으로 연결되었고, "Error establishing a database connection" 에러가 해결되었다.



profile
backend_Devloper
post-custom-banner

0개의 댓글