Information Security ˗ˋˏ ♡ ˎˊ˗

Cloud

[docker] docker에 MariaDB 설치 및 사용

토오쓰 2021. 6. 4. 11:30

 

 

docker 이미지 받고 컨테이너 실행시키는 방법 참고

https://t-okk.tistory.com/150

 

[docker] docker 기본 명령어 #1

docker에 대한 간단한 설명과 설치방법 https://t-okk.tistory.com/149 [docker] 컨테이너 기반의 가상화 도구 docker 설치 컨테이너 기반의 오픈소스 가상화 플랫폼 Docker 2013년에 등장한 컨테이너 기반 가상..

t-okk.tistory.com

 

 

Docker를 통해서 MariaDB 설치하기

 

이미지 다운로드

(sudo) docker pull 이미지이름:버전

/etc/mysql/my.cnf MariaDB 이미지 다운로드

latest 버전: 최신 버전 받기

생략할 경우: 가장 Default tag를 사용하여 가장 최근 버전을 내려받는다.

 

 

컨테이너 실행

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name testmariadb mariadb

 

-d detached mode, 백그라운드에서 실행
-p 호스트와 컨테이너의 포트를 연결 (포워딩)
호스트에서 3306 포트 접속 시 컨테이너 3306 포트로 포워딩됨
-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
컨테이너를 삭제 시 데이터 복구를 편리하게 하기 위해 사용
-e 컨테이너 내에서 사용할 환경변수 설정
MYSQL_ROOT_PASSWORD=1234는 root 계정의 패스워드를 1234로 지정
--name 컨테이너 이름 설정
testmariadb
--character-set-server=utf8mb4 

--collation-server=
utf8mb4_unicode_ci
1. character-set-server, DB 서버의 기본 문자셋으로서 설정 파일에 명시한 대로 utf8mb4로 설정

2. collation-server 문자열 정렬 규칙

 

 

 

컨테이너 목록 확인

(sudo) docker ps

실행 중인 컨테이너 목록을 가져온다.

 

 

컨테이너 실행

docker -exec -it testmariadb /bin/bash

mariadb를 실행하고 해당 DB에 접속하기 위해서 위에 명령어를 실행하여 컨테이너의 bash로 접속한다.

 

 

MariaDB 접속

mysql -u root -p

명령어를 이용하여 DB 접속한다.

password는 MYSQL_ROOT_PASSWORD 값이다.

 

 

여기까지 설치 완료!

 

 

Characterset 변경

status

 

참고) utf8mb4
UTF-8 인코딩은 4바이트 가변 길이 인코딩 방식이다. utf8 4바이트짜리 character set인 utf8mb4을 추가하였다. 

 

/etc/mysql/my.cnf 파일 수정

exit 커맨드를 입력하여 DB를 종료하고 vim을 이용하여 파일을 열어 내용을 추가한다.

 

만일 vim이 없다면 vim 또는 nano를 설치하여 변경할 수 있는 환경을 만들어야 한다.

참고) [docker] 컨테이너 /bin/bash에 vim 설치

 

 

conf 설정 추가

/etc/mysql/my.cnf 에 내용 추가해준다.

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

 

 

재부팅

exit 명령어를 이용하여 docker를 빠져나오고 재실행해준다.

docker restart mariadb

 

 

 

문자열 인코딩 변경 확인

컨테이너에 접속하여 mysql에 접속하여 아래 명령어로 문자열 인코딩이 변경되었는지 확인

docker exec -it mariadb /bin/bash
mysql -u root -p
status

 

 

 

참고

https://mariadb.com/kb/en/installing-and-using-mariadb-via-docker/

 

Installing and Using MariaDB via Docker

Creating and managing a MariaDB Docker container.

mariadb.com