[wisestudy] 데이터베이스 설정

getch_·2020년 6월 10일
0

ToyProject

목록 보기
2/5

데이터베이스 연결 설정

Docker 기반 로컬 데이터베이스 설정
Heroku 기반 원격 데이터베이스 설정

Table of Contents

  1. Docker MySQL 설치 및 확인
  2. Heroku ClearDB(MySQL) 설치 및 확인

Docker MySQL 설치 및 확인

  • Docker 환경에서 MySQL 5.7을 설치합니다.
  • 호스트 머신은 Windows 10 Pro입니다.

1. Docker MySQL5.7용 Compose 파일 작성

  • 파일 내용
version: "3.5"

services:
  db:
    container_name: wisestudy_mysql_local
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_unicode_ci
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: admin
      MYSQL_DATABASE: {DATABASE}
      MYSQL_USER: {DATABASE_USER_NAME}
      MYSQL_PASSWORD: {DATABASE_USER_PASSWOD}
      TZ: Asia/Seoul

  adminer:
    container_name: wisestudy_mysql_adminer
    image: adminer
    restart: always
    ports:
      - 8088:8080
  • 옵션 설명
    • command: 컨테이너 실행 시 전달할 명령줄 인수, 여기서는 기본 인증 플러그인과 문자 인코딩 설정
    • environment
      • MYSQL_ROOT_PASSWORD: 루트 계정의 비밀번호 설정
      • MYSQL_DATABASE: 컨테이너 실행시 생성할 데이터베이스
      • MYSQL_USER: MYSQL_DATABASE에 대한 사용자 계정
      • MYSQL_PASSWORD: MYSQL_USER에 대한 사용자 암호
    • adminer: 웹 기반 MySQL 관리자 도구

2. 컨테이너 실행

  • docker-compose -f {DOCKER_COMPOSE_FILE_NAME} up -d
    • 컨테이너 생성 및 실행
  • docker ps -a
    • 컨테이너 상태 확인
    • STATUS에 up ...으로 출력되면 정상 실행

3. 컨테이너 접속 테스트

  • MySQL Workbench 사용
    • 환경설정 후 Test Connection 확인
    • 위와 같은 메시지가 확인되면 정상적으로 데이터베이스 접속 완료
  • adminer 사용
    • http://localhost:8088
    • Compose 파일에 설정한 바인딩 포트로 접속
    • 로그인이 정상적으로 되면 성공

Heroku ClearDB(MySQL) 설치 및 확인

Heroku App 생성은 생략하겠습니다.

1. Heroku Add-ons 설정

  • ClearDB MySQL 적용
    • Resources > Add-ons > ClearDB MySQL 검색 후 클릭하여 적용
    • Plan nameIgnite로 설정해야 무료로 사용가능 합니다.
    • 만약 결제정보가 없다는 에러가 발생시 계정 설정에서 카드 정보를 등록해주면 됩니다.

2. Heroku MySQL 정보 확인

  • 아래 명령어를 통해 MySQL 접속 정보를 확인
    • $ heroku config | grep CLEARDB_DATABASE_URL
    • 정보 확인
    • mysql://{USERNAME}:{PASSWORD}@{MYSQL_DB_URL}/{DATABASE}?{CONNECTION_OPTION}에 맞추어 분리하여 사용

3. Heroku MySQL 접속 테스트

  • MySQL Workbench 사용
    • 환경설정 후 Test Connection 확인
    • 위와 같은 메시지가 확인되면 정상적으로 데이터베이스 접속 완료
    • Workbench와 데이터베이스 간 버전 차이로 인해 경고 메시지가 발생할 수 있습니다.

저는 웹 서버와 DB 서버를 별도로 운용하기 위해 별도에 앱을 두었습니다.
앱이 여러개인 경우 --app 옵션을 통해 확인할 수 있습니다.

$ heroku config --app {APP_NAME} | grep CLEARDB_DATABASE_URL

참고

profile
한꺼번에 몰아치지 아니하고 오래도록.

0개의 댓글