MariaDB(MySQL) 도커 이미지에 설정값(/etc/mysql/my.cnf) 볼륨매핑방법.
안녕하세요 달소입니다. 앞서 제가 질문드린 MariaDB의 config 매핑 관련해서 해결한 방법을 공유드립니다.
공식문서에서도 데이터폴더(/var/lib/mysql)만 매핑관련 정보가 남아있고 실제 설정값 매핑의 경우 구버전(디렉터리로 매핑) 이 작성되있는데 실제로 적용하게되면 빈폴더만 생기게 됩니다.
시간이필요해 님께서 조언해주신대로 config/my.cnf파일을 컨테이너 실행전에 만들어서 파일대파일로 직접 매핑 시켜주는 방식으로 해결했습니다.
기존에는 /etc/mysql/mariadb.conf.d/50-server.conf 이쪽의 설정파일을 수정했었는데 직접적용해보니 my.cnf 파일을 먼저 참고하기때문에 my.cnf 파일만 수정해주셔도 됩니다.
설정파일 매핑하기
컨테이너 실행전에 config 폴더에 my.cnf를 만들고 아래와같이 정보를 넣어주세요.
+ 기존에 mysql/mariadb의 최적화 설정값이 있으시다면 여기에 다 때려박으시면됩니다.
[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
skip-external-locking
skip-host-cache
skip-name-resolve
위의것은 기본적인 것이고 저는 몇가지(tmp 램디스크 등)을 더 넣었습니다.
작성후에는 esc 를 눌러서 명령모드로 가서 :wq로 저장 후 종료.
docker-compose.yml파일을 수정해줍니다.
저같은 경우 첫줄처럼 매핑해줬습니다.
그리고 다시 저장 후 컨테이너를 생성해줍니다.
docker-compose up -d
확인방법
docker exec -it [컨테이너명] bash 으로 컨테이너 내부에 진입하신뒤
cat /etc/mysql/my.cnf 를 쳤을때 위에 적어놓으신 설정값들이 들어가있으면 됩니다.
실제 db에 적용되어있는지는 저 tmpdir로 확인해 보겠습니다.
원래는 /tmp 인가 그렇습니다 ㅎ
이렇게 빨리 정리하시다니 부지런하시군요..
개으른 저는 창밖에 뿌연 하늘 한번 봤다가 씁슬한 표정을 짓는 제 자신을 발견하곤 합니다.
램디스크에 대한 견해가 저와 조금 달라서요. 흐름을 천천히 이해해보겠습니다.
덕분에 해결방법을 찾아서 너무좋습니다 ㅠ
어제 저녁부터 왜 안될까 한참을 고민했었던 문제였었는데 해결이 되니 ㅎㅎ
램디스크같은경우 제 생각은
---빠르다
---휘발성(데이터 보관용은 안되겠다)
---tmp 용도로 쓰면 되겠다.
이런 의식의 흐름으로 ㅋㅋㅋ 갔습니다
혹시 헤놀로지 패키지센터에 mariadb 10 은 접근이안되나요 ?? 접근 디나이나네요
자문자답이요 비밀번호가 틀렸었네요 ㅠ
cmt alert