[서버]/[SpringBoot Kotlin]
Docker Mysql
Hevton
2023. 4. 11. 01:11
반응형
docker hub에서 mysql 설치
docker pull mysql
mysql 컨테이너 생성
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=비밀번호 -d mysql
mysql 컨테이너에서 접속
docker exec -it mysql-container mysql -u root -p
mysql 컨테이너와 api-server 컨테이너 연결
docker network생성
docker network create my-network
mysql 컨테이너 실행
docker run --name mysql-container --network my-network -e MYSQL_ROOT_PASSWORD=비밀번호 -d mysql
api-server 컨테이너 실행
docker run --name api-container --network my-network -p 8000:8000 -d api-image
api-server에서 커넥트할땐 host를 mysql컨테이너의 이름으로 설정하면 된다.
이런식으로 mysql 설정파일을 마운트해준다.
-v /path/to/my.cnf:/etc/mysql/my.cnf
api-server와 mysql을 연결하거나
api-server와 nginx를 연결할 때 모두 host로 container 명을 사용하면 된다.
Docker Mysql 한글 안 깨지는 방법
데이터베이스 생성 시
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
테이블 생성 시
CREATE TABLE table_name (content VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci);
mysql 설정파일 생성 (/home/my.cnf)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
도커 컨테이너 실행 시
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=비밀번호 -v /home/my.cnf:/etc/mysql/my.cnf -d --network my-network mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
호스트의 /home/my.cnf 를 container의 /etc/mysql/my.cnf 로 마운트
반응형