본문 바로가기

Docker

Docker mariadb 설치

728x90
반응형

Docker image pull 

docker pull mariadb

 

Docker Run

docker container run -d -p 3306:3306 	\
-e MYSQL_ROOT_PASSWORD=1234 		\
-v /Users/Shared/data/mariadb:/var/lib/mysql 	\
--name mariadb mariadb

docker volume을 잡고 올린다.

/Users/Shared가 MacOS에서 설정되어 있는 경로로 데이터를 저장할 경로를 잡으면 된다.

 

Docker  Mariadb 설정 복사 

docker cp mariadb:/etc/mysql/conf.d /Users/Shared/data/conf.d

docker stop mariadb
docker rm mariadb

설정을 local로 복사한 다음 컨테이너를 중지하고 삭제한다.

 

mariadb conf > utf-8로 설정

cd /Users/Shared/data/conf.d

vi my.cnf
skip-character-set-client-handshake
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

 

컨테이너 실행

docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 \
-v /Users/Shared/data/conf.d/:/etc/mysql/conf.d \
-v /Users/Shared/data/mariadb:/var/lib/mysql \
--name mariadb mariadb

 

컨테이너 접속 후 인코딩 적용 확인

docker exec -it mariadb bash

mysql -uroot -p1234

show variables like 'char%';

####
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

 

 


docker mariadb table doesn't exist in engine

이 에러가 날 때 /var/lib/mysql/ib_logfile0

파일을 지우면 되긴함.

 

사용자 계정생성

create user '계정'@'%'IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON 데이터베이스.*TO'계정'@'%';
728x90
반응형