2023년 8월 18일 금요일

Docker - Mysql 컨테이너 생성

Docker - Mysql 컨테이너 생성



터미널에서 docker-compose.yml가 있는 경로에서
docker-compose up -d 실행하면
docker-compose.yml 을 실행하게됨

docker-compose.yml -> 도커 mysql  설정파일

version: "3"
services:
local-db:
container_name: container_name
image: mysql:latest
platform: linux/amd64 #m1 mac
environment:
- MYSQL_USER=root
- MYSQL_PASSWORD=1234
- MYSQL_ROOT_PASSWORD=1234
- MYSQL_DATABASE=databaase
# - TZ=Asia/Seoul
ports:
- "13306:3306"
volumes:
- ./db/mysql/data:/var/lib/mysql
- ./db/mysql/init:/docker-entrypoint-initdb.d
command:
[
"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;