작성
·
38
0
stop, rm 해서 mysql 지우고
mysql 경로 만든 다음에
docker run -d -p 3305:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql -v 제 경로/mysql:/var/lib/mysql mariadb:10.9
다시 하고
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 ps로 mysql로 잘 떠있는 것도 확인 가능합니다.
그런데 localhost:8080으로 workpress 띄우면
error establishing a database connection이 뜹니다.
3306이 이미 사용중이라고 해서 3305로 했고 -v 옵션 하기전에는 3305로 잘떠서 실습에 문제 없었습니다. 확인 좀 부탁드리겠습니다 ㅠㅠ
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 솔송주님!
현재 발생한 문제는 주로 데이터베이스 연결 정보(MYSQL 환경 변수)와 관련된 문제로 보입니다. 또한 데이터를 저장할 경로를 지정할 때 발생할 수 있는 권한 문제도 확인해보시는 것이 좋습니다. 비슷한 문제를 겪었던 여러 수강생의 경험을 참고하여 답변을 드리겠습니다.
3305
포트로 실행 중이므로, WordPress 컨테이너의 환경 변수가 이를 정확히 반영하도록 설정되어 있는지 확인해야 합니다. 특히 WORDPRESS_DB_HOST
설정 시 host.docker.internal:3305
와 같이 포트 번호까지 정확히 입력해야 합니다.관련된 질문을 통해서도 문제 해결에 도움을 드릴 수 있을 것 같습니다. 아래 링크들을 참고해 주세요.
볼륨 마운트 경로의 권한 확인:
/var/lib/mysql
에 마운트 된 디렉토리에 MySQL이 데이터를 기록할 수 있는 충분한 권한이 부여되어 있는지 확인해 보세요. 파일 시스템의 권한 문제는 데이터베이스 연결에 장애를 일으킬 수 있습니다.컨테이너 내부의 MySQL 접근 확인:
docker exec -it 워드프레스컨테이너명 또는 ID /bin/bash
로 들어가서 MySQL 접속 시도해 보세요.위의 링크들과 설명을 참고하여 문제를 해결해 나가시길 바랍니다. 저도 여러 해결책을 기반으로 답변드리고 있는 만큼, 궁금한 점이나 추가로 필요한 부분이 있으면 언제든지 질문 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
WORDPRESS_DB_HOST
설정 시host.docker.internal:3305
와 같이 포트 번호까지 정확히 입력해야 합니다.> 해당 부분 network 부분에서
docker run -d -p 8080:80 \ --network=app-network \ -e WORDPRESS_DB_HOST=mysql \ -e WORDPRESS_DB_NAME=wp \ -e WORDPRESS_DB_USER=wp \ -e WORDPRESS_DB_PASSWORD=wp \ wordpress
이렇게 되어있어서..바꿨습니다.
e WORDPRESS_DB_HOST=host.docker.internal:3305 이렇게 했을때는 문제가 없는데 ㅠㅠ network에서는 3305를 어떻게 처리해야할까요