- docker 명령어
https://woopi1087.tistory.com/104
[Docker] 명령어 모음
명령어 모음 내용 명령어 예시 버전 확인 docker -v 다운받은 이미지 조회 docker images 이미지 다운 docker pull {이미지} docker pull mariadb:latest 컨테이너 생성 docker create {이미지} docker create -p 13306:3306 --nam
woopi1087.tistory.com
- docker mariadb 설치
https://woopi1087.tistory.com/105
[Docker] docker Mariadb 설치
docker 명령어 https://woopi1087.tistory.com/104 mariadb 생성 mariadb 이미지 pull docker pull mariadb:latest 다운로드한 이미지 정보 보기 docker scout quickview mariadb:latest 이미지로 컨테이너 생성 및 실행 docker run \ -d \
woopi1087.tistory.com
master DB 세팅
- 생성 및 기본 마리아 DB 관련은 위 링크 참고합니다
- 다음 명령어를 입력합니다.
docker run -d --name local_mariadb_master -p 13306:3306 -v ./master/data:/var/lib/mysql -v ./master/config:/etc/mysql/conf.d -e MARIADB_ROOT_PASSWORD=1234 mariadb:latest
- my.cnf 설정
mariadb 컨테이너 안에 있는 '/etc/mysql/conf.d' 에 링크가 걸린 master/config 디렉토리 안에
my.cnf 만들어서 아래 설정을 넣습니다 (log-bin 파일 설정, server-id 설정)
[mysqld] log-bin=mysql-bin server-id=1
- 컨테이너 접속
docker exec -it local_mariadb_master /bin/bash - mariadb 로그인
mariadb -u root -p - 로그인 하다가 아래 에러가 뜨면 권한 수정 후 docker 재시작 합니다.
[ MYSQL ] World-writable config file '/etc/my.cnf' is ignored
권한 수정 : chmod 755 /etc/mysql/conf.d/my.cnf
컨테이너 나간 후 docker 재시작 : docker restart local_mariadb_master
log_bin 설정 확인 명령어
## show variables like 'log_bin'; - 다시 mariadb 접속, 로그인 후 아래 쿼리 수행합니다
create database test; create user 'repluser'@'%' identified by '1234'; grant all privileges on test.* to 'repluser'@'%' identified by '1234'; grant replication slave on *.* to 'repluser'@'%'; flush privileges;
slave DB 세팅
- 생성 및 기본 마리아 DB 관련은 위 링크 참고합니다
- 다음 명령어를 입력합니다.
docker run -d --name local_mariadb_slave -p 13307:3306 -v ./slave/data:/var/lib/mysql -v ./slave/config:/etc/mysql/conf.d -e MARIADB_ROOT_PASSWORD=1234 --link local_mariadb_master mariadb:latest
- my.cnf 설정
mariadb 컨테이너 안에 있는 '/etc/mysql/conf.d' 에 링크가 걸린 slave/config 디렉토리 안에
my.cnf 만들어서 아래 설정을 넣습니다.
[mysqld] log-bin=mysql-bin server-id=2 relay-log=relaylog log-slave_updates=1 read_only = 1
- mariadb 접속,로그인 합니다 (master DB 세팅시와 동일 과정)
- 다음 쿼리를 수행합니다.
create database test; create user 'repluser'@'%' identified by '1234'; grant all privileges on test.* to 'repluser'@'%' identified by '1234'; flush privileges;
master-slave 연동
- master 컨테이너 접속하여
다음과 같은 명령어로 mysql-bin 파일 명과 position을 확인해야합니다.
SHOW MASTER STATUS\G;
- slave에 접속하여 조회한 정보를 토대로 다음과 같이 설정합니다.
위 master status에서 File과 position을 확인하여
MASTER_LOG_FILE, MASTER_LOG_POS에 세팅합니다.
CHANGE MASTER TO MASTER_HOST='local_mariadb_master', MASTER_USER='repluser', MASTER_PASSWORD='1234', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1089;
- slave 시작
start slave; - 설정 확인
SHOW SLAVE STATUS\G;
Last_Errno 는 0,
Last_IO_Errnork 0 이면
설정이 완료된것 입니다.
참고
https://velog.io/@busybean3/Docker-MariaDB%EC%9D%98-Master-Slave-%EC%84%A4%EC%A0%95
Docker MariaDB의 Master-Slave 수동설정
MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다. 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 반
velog.io
https://firststep-de.tistory.com/21
[DataBase] [Docker] MariaDB replication DB 설정을 알아보자. 🐳 [2]
이전 포스팅은 Master-Slave 구조를 가지는 Database를 도커를 통해서 수동설정하는 방법을 알아보았습니다. 2021.07.12 - [분류 전체보기] - [DataBase] [Docker] MariaDB replication DB 설정을 알아보자. 🐳 [DataBase]
firststep-de.tistory.com
'Docker' 카테고리의 다른 글
[Docker] docker Mariadb 설치 (0) | 2024.02.23 |
---|---|
[Docker] 명령어 모음 (0) | 2024.02.23 |
[Docker] 명령어 자동 완성 플러그인 설치 (mac) (0) | 2024.02.22 |
[Docker] mac에서 docker 설치 (0) | 2024.02.22 |
[Docker] 컨테이너끼리 통신 (0) | 2022.09.01 |