【개발 환경 구축】Docker로 Wordpress의 개발 환경 구축을 하고 「Error establishing a database connection」으로 연결되지 않을 때는 wp-config.php를 확인!



Wordpress 개발 환경을 Docker로 만들려고 했더니 "Error establishing a database connection"이라는 오류 메시지가 표시되었습니다. 조금 막혔으므로 비망록으로 써 둡니다.

원인 1 : 도커의 볼륨이 남아있었습니다.



해결 방법 : docker volume prune에서 사용하지 않는 볼륨을 제거합니다.

docker-compose.yml에 아래와 같이 설명했습니다.

docker-compose.yml
...
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: db
      MYSQL_USER: user
      MYSQL_PASSWORD: pass
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

이 yml 파일로 한번 컨테이너를 기동한 후, 사용자명이나 패스워드를 변경해 작업을 하고 있었으므로, db 컨테이너에 들어가고 나서 mysql에 접속하려고 해도 「패스워드가 다릅니다」라고 하는 메세지가 표시되어 버립니다 , 연결할 수 없습니다.

yml 파일을 검토하고, "이것, volume가 남아 있기 때문에 수정한 정보가 반영되지 않는 것은...?"라고 알아차리고, docker volume prune 로 낡은 volume를 삭제. 다시 컨테이너를 시작했는데, 수정 후의 정보로 mysql에 접속할 수 있었습니다.

원인 2 : wp-config.php의 DB_HOST는 DB 컨테이너 이름



해결: wp-config.php의 DB_HOST를 DB 컨테이너 이름으로 변경합니다.

wp-config.php
修正前
/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

修正後
/** MySQL のホスト名 */
define('DB_HOST', 'db'); // ymlに記載したDBコンテナ名

wordpress의 구성 파일은 루트 디렉토리에 wp-config-sample.php가 있으므로 이것을 wp-config.php로 복사하여 사용합니다. 이 중에 DB의 접속 정보가 기재되어 있습니다만, 이 DB_HOST의 값을 docker로 작성하는 DB의 컨테이너명으로 설정했는데, 무사히 Wordpress의 화면이 표시되었습니다.

마지막으로




URL에 http://localhost:8080/wp-admin/ 로 연결하면 위와 같은 화면이 표시되었습니다. 여기에 표시된 'Are you sure you have typed the correct hostname?'을 보고 원인 2를 의심할 수 있었습니다.

그럼!

참고 정보:
· 미사용 컨테이너, 볼륨 등을 일괄 삭제
htps : // 이 m / re f t / ms / 5 또는 88 a bcf1 8964783

· Docker : 사용하지 않는 볼륨을 삭제하여 디스크 사용량을 절약합니다.
htps : // Hoge-hogeo-777. 하테나 bぉg. 코m/엔트리/2019/03/01/183000

좋은 웹페이지 즐겨찾기