【Docker】Docker+Rails 컨테이너 구축시의 MYSQL 에러

안녕하세요! 포트폴리오 작성에 있어서, Docker+Railsコンテナ構築時にUnknown MySQL server host ‘mysql’エラー 가 발생해 좀처럼 해결하지 않았기 때문에 비망으로.

참고



DOCKER+RAILS 컨테이너 구축시 UNKNOWN MYSQL SERVER HOST ‘MYSQL’오류
https://www.somuriengineer.com/2019/02/12/dockerrails%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E6%A7%8B%E7% AF%89%E6%99%82%E3%81%AEunknown-mysql-server-host-mysql%E3%82%A8%E3%83%A9%E3%83%BC/

너무 세심한 Docker-compose에 의한 rails + MySQL on Docker의 환경 구축(Docker for Mac)
htps : // 코 m / 아즈 l915 / ms / 5b7063cbc80192343fc0

위의 Qitta입니다 매우 정중하게 Docker for Mac의 환경 구축은 기재되어 있으므로 할애.



빠진 오류


$ docker-compose run web rails db:create

시도하면,



오 r


Access denied for user ‘hoge’@’localhost’ to database ‘mysql’

원인추구



두 파일 중 하나가 좋지 않아 ...

작업 디렉토리/docker-compose.yml
version: '3'
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: ****** <= 任意のパスワード
      MYSQL_DATABASE: root
    ports:
      - "3306:3306"

  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app_name
    ports:
      - "3000:3000"
    links:
      - db

작업 디렉토리/config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: password # docker-compose.ymlのMYSQL_ROOT_PASSWORD
  host: db # docker-compose.ymlのservice名
links:database:mysql 로 보거나 root 로 해 보거나 db 로 되돌리거나 host:도 마찬가지로 변경해 보거나 결국은 Unknown MySQL server host 'mysql' 또는 Access denied for user 'hoge'@'localhost' to database ''

이전에 aws로 프로덕션 환경 구축하고 있었을 때에도 mysql에 시달렸기 때문에 쓴 추억 ...

그 때는 확실히 root 권한으로부터 액세스 허가를 실시했을 것이다. 그냥 그런 어려운 오류가 아닌 것 같습니다 ...

해결 방법



참고로 기사에 恐らくですが、Dockerの古いイメージが残ってしまい、そちらを参照し続けてしまったことなどが原因かと思います。 그리고. 팀원이 이것과 비슷한 것을 말하고 있던 것을 기억한다

다음 명령은 움직이지 않는 이미지를 포함한 모든 Docker 이미지를 삭제합니다.

작업 디렉토리
$ docker stop $(docker ps -q)
$ docker rm $(docker ps -aq)
$ docker rmi $(docker images -q)

"이것으로 다시 도전!"

Docker 시작

작업 디렉토리
$ docker-compose build # コンテナをビルド
$ docker-compose up # コンテナの一斉起動

DB 생성
$ docker-compose run web rails db:create
Starting portfolio_db_1 ... done
Created database 'app_name_development'
Created database 'app_name_test'

「오, 화내지 않아! 갈 수 있을지도!」

브라우저에서 localhost:300에 액세스하여 서버 시작 확인



「갈 수 있어!」

요약



2019년 10월 중순부터 개시하는 전직 활동을 향해 포트폴리오의 작성을 개시했으므로, 그때마다 빠진 부분을 비망록으로서 기사에 정리해 가려고 생각합니다. 다음은 프로덕션 환경에 배포합니다.

좋은 웹페이지 즐겨찾기