인프런 커뮤니티 질문&답변

춘삼이님의 프로필 이미지

작성한 질문수

초보를 위한 도커 안내서

도커 기본 명령어 (run)

wordpress Error establishing a database connection 오류뜨시는 분들

21.08.30 21:42 작성

·

1.3K

2

mysql 접속 포트 변경해주셨다면

wordpress 이미지 run 해주실 때 아래와 같이 internal뒤에 :port 번호 적어주시면 됩니다!

WORDPRESS_DB_HOST=host.docker.internal:[mysql 변경한 port]

답변 2

1

MH님의 프로필 이미지

2021. 11. 04. 01:42

저도 같은 오류로 워드프레스 접속이 안됩니다.

3306포트를 이미 사용중인것으로 확인되어 mysql포트를 아래와 같이 변경하여서 사용하여도

결국 같은 에러가 표시 됩니다.

제가 초심자라 되도록이면 커맨드 변경은 mysql 포트 번호를 3306으로 한 것과
워드프레스 포트에 :3301 이 밖에는 건드리지 않았습니다.
어디가 잘못 된 것인지 잘 모르겠습니다.

docker run -d -p 3301:3301 \

  -e MYSQL_ALLOW_EMPTY_PASSWORD=true \

  --name mysql \

  mysql:5.7

 

docker exec -it mysql mysql

create database wp CHARACTER SET utf8;

grant all privileges on wp.* to wp@'%' identified by 'wp';

flush privileges;

quit

 

 

 

docker run -d -p 8080:80 \

  -e WORDPRESS_DB_HOST=host.docker.internal:3301\

  -e WORDPRESS_DB_NAME=wp \

  -e WORDPRESS_DB_USER=wp \

  -e WORDPRESS_DB_PASSWORD=wp \

  wordpress

subicura님의 프로필 이미지
subicura
지식공유자

2021. 11. 16. 01:11

안녕하세요!

mysql 컨테이너를 실행한 명령어 중 -p 옵션이 3301:3301로 지정하신걸 볼 수 있습니다.

앞의 3301은 host(docker를 실행한 서버)의 포트이고 뒤에 3301은 컨테이너(mysql)의 포트를 의미합니다.

따라서 3301:3301은 호스트의 3301을 컨테이너의 3301로 연결되었고 컨테이너의 3301은 오픈되지 않은 포트이기 때문에 연결이 되지 않습니다.

따라서 3301:3306으로 변경하여 호스트의 3301을 컨테이너(mysql)의 오픈되어 있는 3306으로 연결해야 정상적으로 접근이 가능합니다.

감사합니다!

0

subicura님의 프로필 이미지
subicura
지식공유자

2021. 09. 12. 21:05

안녕하세요!

친절한 설명 감사합니다.

말씀하신대로 port를 변경하였다면 환경변수도 변경이 필요합니다.

감사합니다!