Docker를 사용해서 MariaDB을 설치하기
2020-09-26
참고: 이 글은 JiHun님의 Docker를-사용해서-MariaDB-설치하기을 참고했습니다. 자세한 내용은 이 글을 참고하세요!
docker 에 mariadb container를 받고 실행합니다. MYSQL_ROOT_PASSWORD = RT27hDosK에 쓴 RT27hDosK은 DB 비번입니다. 적절하게 고쳐주세요. 연습용으로 쓰실 것이면, 그대로 사용해도 무방합니다.
1docker pull mariadb
2docker run --name mariadb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=RT27hDosK mariadb
앞에서 실행한 container에 들어가서 bash를 실행합니다.
1docker exec -it mariadb /bin/bash
container에 들어갔으니, mysql으로 들어가겠습니다. 피번은 앞에서 MYSQL_ROOT_PASSWORD = RT27hDosK이라고 했으니 RT27hDosK을 입력하시면 됩니다.
1root@e144fdbab9be:/# mysql -u root -p
2Enter password:
들어갔으니 DB상태를 살펴보겠습니다. latin1이 2개 있습니다. 이것때문에 한글이 깨질 수 있습니다. 변경해보겠습니다.
1MariaDB [(none)]&> status
2--------------
3mysql Ver 15.1 Distrib 10.5.5-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
4
5Connection id: 4
6Current database:
7Current user: root@localhost
8SSL: Not in use
9Current pager: stdout
10Using outfile: ''
11Using delimiter: ;
12Server: MariaDB
13Server version: 10.5.5-MariaDB-1:10.5.5+maria~focal mariadb.org binary distribution
14Protocol version: 10
15Connection: Localhost via UNIX socket
16Server characterset: utf8mb4
17Db characterset: utf8mb4
18Client characterset: latin1
19Conn. characterset: latin1
20UNIX socket: /run/mysqld/mysqld.sock
21Uptime: 2 min 1 sec
22
23Threads: 2 Questions: 4 Slow queries: 0 Opens: 16 Open tables: 10 Queries per second avg: 0.033
앞에 설정을 바꾸기 위해서는 도커 컨테이너 안에 있는 파일을 고쳐야 합니다. 그런데 에디터가 없습니다. 에디터를 설치하고 파일을 열겠습니다.
1root@e144fdbab9be:/# apt-get update
2root@e144fdbab9be:/# apt-get install nano
3root@e144fdbab9be:/# nano /etc/mysql/my.cnf
앞에서 연 /etc/mysql/my.cnf 파일에서 내용을 아래와 같이 추가/수정해 줍니다.
1[client]
2default-character-set = utf8mb4
3
4[mysql]
5default-character-set = utf8mb4
6
7[mysqld]
8collation-server = utf8_unicode_ci
9init-connect='SET NAMES utf8'
10character-set-server = utf8
다 했으면 나갑니다.
1root@e144fdbab9be:/# exit
2exit
이제 변경한 내용을 적용하시려면 mariadb를 재시작해야 합니다. 우선 mariadb ID를 다음과 같이 찾습니다. 그런 다음 그 ID를 가지고 mariadb를 재실행합니다.
1❯ docker ps
2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e144fdbab9be mariadb "docker-entrypoint.s…" 20 minutes ago Up 20 minutes 0.0.0.0:3306->3306/tcp mariadb
4
5❯ docker restart e144fdbab9be
6e144fdbab9be
지금까지 한 것을 확인하러 컨데이너에 들어갑니다.
1docker exec -it mariadb /bin/bash
2mysql -u root -p
3# MYSQL_ROOT_PASSWORD=RT27hDosK
4Enter password:
잘 변경되었습니다.
1MariaDB [(none)]&> status
2--------------
3mysql Ver 15.1 Distrib 10.5.5-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
4
5Connection id: 3
6Current database:
7Current user: root@localhost
8SSL: Not in use
9Current pager: stdout
10Using outfile: ''
11Using delimiter: ;
12Server: MariaDB
13Server version: 10.5.5-MariaDB-1:10.5.5+maria~focal mariadb.org binary distribution
14Protocol version: 10
15Connection: Localhost via UNIX socket
16Server characterset: utf8
17Db characterset: utf8
18Client characterset: utf8mb4
19Conn. characterset: utf8mb4
20UNIX socket: /run/mysqld/mysqld.sock
21Uptime: 1 min 46 sec
22
23Threads: 2 Questions: 4 Slow queries: 0 Opens: 16 Open tables: 10 Queries per second avg: 0.037