Cloud 서비스의 DB가 요금이 많이나온다. 그래서 가벼운 프로젝트는 백엔드와 DB를 단일 서버로 사용하기 위해 DB 구축하는 과정을 기록해놓기로 했다. 아주 간단하게 사용할 수 있는 SQLite3 도 있지만 MySQL 로 구축!

MySQL 을 구축하는 방법에는 MySQL을 직접 설치하는 방법과 Docker image로 하는 방법이 있다.

컴퓨터에 이거저거 설치하는거 싫어해서 Docker로 진행.


Docker 로 MySQL 구축

개발 환경

Docker 설치

MySQL 구축

  • Docker hub 에가면 다양한 이미지를 찾을 수 있다.
  • Docker hub 에서 MySQL 검색


  • Tag에서 최신 버전, 원하는 버전 등을 찾을 수 있다.


  • 가장 최신 버전으로 설치!
  • 터미널에 복붙!
  • docker images 로 이미지 확인


  • MySQL 컨테이너 생성
  • 가장 혼란스러웠던 저장공간 설정..
  • Volume과 Bind Mount 가 있는데 다음 유튜브에 설명이 아주 잘 나와있다.
  • https://youtu.be/-pzptvcJNh0
docker run 
    # 컨테이너 이름 지정
    --name test-mysql 
    # MySQL root 계정 비밀번호 지정
    -e MYSQL_ROOT_PASSWORD=1234 
    # 백그라운드로 실행
    -d 
    # 포트포워딩, 호스트:컨테이너
    -p 3306:3306 
    # 바인드 마운트, 호스트:컨테이너
    -v /home/docker/gymdata/:/var/lib/mysql/
    # 도커 이미지 ID
    mysql:latest


  • /home/docker/gymdata 에 가면 공간이 생성된 것을 확인할 수 있다.


  • 컨테이너 접속 후 MySQL 사용 확인
docker exec -it test-mysql bash


  • MySQL 접속
mysql -u root -p
  • 사용자 계정 생성
# 계정 생성
CREATE USER 'name'@'%' IDENTIFIED BY 'password';

# 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'name'@'%';

# 권한 적용
FLUSH PRIVILEGES;
  • 데이터베이스를 생성하고 사용하면 된다.

  • 외부에서 접속하는 방법은 포트를 열어주면 되는데 GCP의 경우 방화벽에서 설정한 3306 포트를 열어주면 접속이 된다.