Product/Docker

[Docker] MySQL 초기 DB/User/Data SQL 세팅

Codit Develop 2022. 2. 18. 11:41
반응형

Docker MYSQL 초기 DB 및 데이터 세팅

작성 파일

  • DB 세팅 SQL Files (setInit.sql, setTable.sql)
  • SQL 실행 Shell (initDB.sh)

SQL 작성

# /mysql/conf/setInit.sql

# DB 생성
CREATE DATABASE initdb;

# User 생성
CREATE USER dbuser IDENTIFIED BY 'qwer1234';

# User 권한 설정
GRANT ALL PRIVILEGES ON initdb.* TO 'dbuser'@'%' IDENTIFIED BY 'qwer1234';
# /mysql/conf/setTable.sql

CREATE TABLE ...

Init Shell 작성

# /mysql/conf/initDB.sh

# sql 파일 권한 수정
chmod 755 setInit.sql
chmod 755 setTable.sql

# Init 
mysql -uroot -pexample < setInit.sql
mysql -udbuser -p'qwer1234' dbciboard < setTable.sql

Dockerfile 및 docker-compose.yml 적용

Dockerfile

...
COPY /mysql/conf/ /docker-entrypoint-initdb.d/ 

docker-compose.yml

...
    volumes:
      - "/mysql/conf:/docker-entrypoint-initdb.d:rw"

적용

docker build - run 또는 docker-compose up -d 실행 시 docker-entrypoint-initdb.d 가 자동으로 실행되어 적용됨.

반응형