command와 volumes 설정으로 UTF8 인코딩
services: db: image: mysql:8.0 # MySQL 8.0 사용 container_name: mysql_db_306 restart: always environment: MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_DATABASE: ${DB_NAME} # 문자셋과 정렬 방식 설정 MYSQL_INITDB_SKIP_TZINFO: "1" command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci'] ports: - "3306:3306" volumes: - ./my.cnf:/etc/mysql/conf.d/my.cnf # MySQL 설정 파일 마운트 - db_data:/var/lib/mysql networks: - fastapi_network
MySQL에 접속:
1. mysql 컨테이너에 접속
PS C:\Users\USER\Documents\github\python\fast_api_practice> docker exec -it mysql_db_306 bash
2. mysql 접속
bash-5.1# mysql -u root -p --default-character-set=utf8mb4
MySQL의 UTF-8 인코딩 문자셋 설정 확인법:
SHOW VARIABLES LIKE 'character_set%';
character_set_client, character_set_connection, character_set_database 등이 모두 utf8mb4로 설정되어 있는지 확인하세요.