Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jdbc
- spring boot
- Jenkins
- Linux
- centos7
- vagrant
- Spring Legacy Project
- SSL
- Git
- docker
- db
- EC2
- 프로그래머스
- Java
- TypeScript
- TLS
- 책 정리
- window
- Client
- 토비의스프링
- DISTINCT
- 코딩테스트
- github
- mariadb
- ssh
- WebHook
- sample
- spring
- AWS
- Hibernate
Archives
- Today
- Total
Woopii Vyeolog
[Docker] mariadb master slave 세팅 본문
- docker 명령어
https://woopi1087.tistory.com/104
- docker mariadb 설치
https://woopi1087.tistory.com/105
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
https://firststep-de.tistory.com/21
'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 |
Comments