Docker - Mysql 컨테이너 생성
터미널에서 docker-compose.yml가 있는 경로에서
docker-compose up -d 실행하면
docker-compose.yml 을 실행하게됨
docker-compose.yml -> 도커 mysql 설정파일
version: "3"services:local-db:container_name: container_nameimage: mysql:latestplatform: linux/amd64 #m1 macenvironment:- MYSQL_USER=root- MYSQL_PASSWORD=1234- MYSQL_ROOT_PASSWORD=1234- MYSQL_DATABASE=databaase# - TZ=Asia/Seoulports:- "13306:3306"volumes:- ./db/mysql/data:/var/lib/mysql- ./db/mysql/init:/docker-entrypoint-initdb.dcommand:["mysqld","--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci","--lower_case_table_names=1"]
파라미터 정보
- MYSQL_ROOT_PASSWORD : 루트 패스워드 설정
- MYSQL_USER / MYSQL_PASSWORD : 유저 / 패스워드 설정
- character-set-server : 문자와 인코딩 관련 설정
디폴트 설정(utf8)으로 할 경우 한글이 깨질수 있습니다.
한글 깨짐 방지를 위해서 character-set-server를 utf8mb4로 설정
- collation-server : Character 룰 관련 설정
디폴트 설정으로 할 경우 한글이 깨질수 있다.한글깨짐 방지를 위해서 collation-server를 utf8mb4_unicode_ci로 설정
- lower_case_table_names :
0 : 테이블 생성 및 조회 시 대/소문자 구분1 : 입력값이 대/소문자든 소문자로 인식, 소문자 인식 파일생성
- TZ : 타임존 설정 (Asia/Seoul)
타임존 설정 (docker로 mysql을 띄운상태에서 타임존을 바꿔야 하는경우)
$ docker exec -it <container ID or name> /bin/bash $ mysql -u root -p $ password : mysql> set global time_zone='Asia/Seoul'; mysql> set time_zone='Asia/Seoul'; mysql> select @@global.time_zone, @@session.time_zone;