본문으로 건너뛰기

Master-Slave 복제 구성

Master-Slave 복제 구성

목차


환경

서버IP역할
Master192.168.206.4원본 DB
Slave192.168.206.5복제 DB

Master 서버 (192.168.206.4)

1. 복제 사용자 생성

CREATE USER 'pista'@'192.168.206.5'
IDENTIFIED WITH mysql_native_password BY '<YOUR_PASSWORD>';

GRANT REPLICATION SLAVE ON *.* TO 'pista'@'192.168.206.5';

FLUSH PRIVILEGES;

2. 설정 편집

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

외부 사용자 허용

#bind-address = 127.0.0.1
#mysqlx-bind-address = 127.0.0.1
server-id = 1

3. 재시작

sudo systemctl restart mysql

Slave 서버 (192.168.206.5)

접속 테스트

mysql -h 192.168.206.4 -u pista -p

Master 서버 (192.168.206.4)

1.접속


sudo mysql -u admin -p
show master status\G

해당 내용 저장


*************************** 1. row ***************************
File: binlog.000013
Position: 157
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

슬레이브 확인

show grants for 'pista'@'192.168.206.5';
+-----------------------------------------------------------+
| Grants for pista@192.168.206.5 |
+-----------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `pista`@`192.168.206.5` |
+-----------------------------------------------------------+
1 row in set (0.00 sec)

2.전체 백업

mysqldump -u admin -p --all-databases > ~/master_pista_all.sql

3.sql 파일 전송

scp ./master_pista_all.sql pista@192.168.206.5:/home/pista/master_pista_all.sql

SLAVE 서버 (192.168.206.5)

1. DB 복원

mysql -u pista -p < master_pista_all.sql

2. 슬레이브 파일 편집

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 2
read_only = 1

3. 재시작

sudo systemctl restart mysql

4. 복제 설정

mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='192.168.206.4',
MASTER_PORT=3306,
MASTER_USER='pista',
MASTER_PASSWORD='<YOUR_PASSWORD>',
MASTER_LOG_FILE='binlog.000013',
MASTER_LOG_POS=157;

START SLAVE;
START SLAVE;

5. 슬레이브 상태 확인

SHOW SLAVE STATUS\G;

6. 상태 확인

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master_Log_File: binlog.000013
Read_Master_Log_Pos: 157

설정시 문제가 있을 경우

STOP SLAVE;
RESET SLAVE ALL;

복제 동작 확인

Master서버 (192.168.206.4)

테이블 생성

USE testdb;
CREATE TABLE test_replication (
id INT PRIMARY KEY,
name VARCHAR(50)
);

INSERT INTO test_replication VALUES (1, 'test');

SLAVE 서버 (192.168.206.5)

테이블 확인

USE pista;
SELECT * FROM test_replication;

관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: Master-Slave 복제 구성
노드 클릭 → 이동 · 드래그 → 위치 조정