database mariadb 단방향 replication구축을 해볼예정입니다.
docker container run -e MARIADB_ROOT_PASSWORD=1234 --name master -d -p 3308:3306 mariadb
docker container run -e MARIADB_ROOT_PASSWORD=1234 --name slave -d -p 3309:3306 mariadb
vi editor 설치
docker exec -it master /bin/bash
apt update
apt install -y vim
vi /etc/mysql/my.cnf 에 값 추가
[mysqld]
log-bin = mysql-bin
expire_logs_days = 2
server_id = 1
적용 확인 log_bin이 on으로 되어야 한다.


안에 들어 있는 값들을 기억 해야 한다.

master서버에 slave에서 사용할 계정 생성
grant replication slave on *.* to slave@'%' identified by '패스워드';
flush privileges;
slave 접속
docker exec -it slave /bin/bash
vi /etc/mysql/my.cnf 값 추가
[mysqld]
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
적용 확인

master ip주소 확인
docker inspect -f "{{ .NetworkSettings.IPAddress }}" master
172.17.0.3
Slave에 master 정보 추가
CHANGE MASTER TO MASTER_HOST='172.17.0.3',
MASTER_USER='slave',
MASTER_PASSWORD='비밀번호',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=328,
MASTER_CONNECT_RETRY=10;
slave 실행
MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.000 sec)
테스트


master에서 순서대로 sql문 실행
create database TEST;
use TEST;
create table test_table(
idx int(11) primary key auto_increment not null,
contents varchar(300) not null
);
insert into test_table(contents) values("마스터에서 넣은 데이터");
select * from test_table;
slave에서 테스트
use TEST;
select * from test_table;

'Database' 카테고리의 다른 글
MySQL 데이터 복구기 (0) | 2024.06.01 |
---|