글 작성자: 모두의 근삼이

본 내용은 2020년 01월 10일에 작성됨.

본 내용은 mysql 5.7.28 버전을 기준으로 작성됨.


개요

  1. [MYSQL master 서버] config 설정 (slave에서 읽어갈 로그 파일을 지정해 줌)
  2. [MYSQL master 서버] Backup 진행 (slave에서 master를 구독을 시작하기 전 환경을 동일하게 맞춰 주기 위함)
  3. [MYSQL master 서버] Replication 용 계정 생성 및 권한 할당
  4. [MYSQL slave 서버] config 설정 (master서버와 다른 server-id를 할당)
  5. [MYSQL slave 서버] Restore 진행 (master에서 생성한 백업 파일을 이용하여 진행)
  6. [MYSQL slave 서버] master 서버 정보 추가
  7. [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 로 설정을 보면 확인하기 편한 형태로 출력된다.

 

반응형