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