MYSQL Master, Slave Replication구성
본 내용은 2020년 01월 10일에 작성됨.
본 내용은 mysql 5.7.28 버전을 기준으로 작성됨.
개요
- [MYSQL master 서버] config 설정 (slave에서 읽어갈 로그 파일을 지정해 줌)
- [MYSQL master 서버] Backup 진행 (slave에서 master를 구독을 시작하기 전 환경을 동일하게 맞춰 주기 위함)
- [MYSQL master 서버] Replication 용 계정 생성 및 권한 할당
- [MYSQL slave 서버] config 설정 (master서버와 다른 server-id를 할당)
- [MYSQL slave 서버] Restore 진행 (master에서 생성한 백업 파일을 이용하여 진행)
- [MYSQL slave 서버] master 서버 정보 추가
- [MYSQL slave 서버] 시작
Master 서버 설정
- Config 설정
#/etc/mysql/conf.d/mysql.cnf 설정 수정
[mysqld]
server-id = 1
log-bin=mysql-bin
- Backup 진행
#bash $
mysqldump -u root -p --all-databases > dump.sql
- Replication용 계정 생성 및 권한 할당
#mysql >
CREATE USER 'repluser'@'%' IDENTIFIED BY 'passtouse';
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%';
flush privileges ;
- 마스터 서버정보 확인
#mysql >
SHOW MASTER STATUS;
Slave에서 서버 설정을 진행할 때 File이름(mysql-bin.000004), Position(154)를 잘 기억해야 한다.
Slave 서버 설정
- config 설정
#/etc/mysql/conf.d/mysql.cnf 설정수정
[mysqld]
server-id = 2
- restore 진행
#bash $
mysql -u root -p < dump.sql
- mysql master 서버 정보 추가
#mysql >
CHANGE MASTER TO MASTER_HOST='192.168.123.456', MASTER_PORT=3306, MASTER_USER='repluser', MASTER_PASSWORD='passtouse', MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=154;
master 서버에 대한 정확한 정보를 입력해야 한다.
옵션 | 값 | 예시 | 타입 |
MASTER_HOST | 마스터서버 ip | '192.168.0.1' | STRING |
MASTER_PORT | 마스터서버 port | 3306 | NUM |
MASTER_USER | Replication 계정 ID | 'repluser' | STRING |
MASTER_PASSWORD | Replication 계정 PW | 'password' | STRING |
MASTER_LOG_FILE | SHOW MASTER STATUS 로 확인한 정보 | 'mysql-bin.000004' | STRING |
MASTER_LOG_POS | SHOW MASTER STATUS 로 확인한 정보 | 154 | NUM |
- Slave 시작
#mysql >
START SLAVE;
SHOW SLAVE STATUS\G
SHOW SLAVE STATUS\G 로 설정을 보면 확인하기 편한 형태로 출력된다.
반응형