MySQL 복제 설정 방법
MySQL 복제는 여러 MySQL 서버를 사용하여 데이터베이스 복제 및 분산 처리를 가능하게 하는 기능입니다.
이 기능을 사용하면 마스터 MySQL 서버의 데이터 변경 사항을 여러 슬레이브 MySQL 서버에 자동으로 전파할 수 있습니다.
이를 통해 데이터 안정성을 높이고 부하 분산 및 데이터 분석 등 다양한 용도로 사용할 수 있습니다.
이 게시물에서는 MySQL 복제 설정을 안내합니다.
1. 마스터 MySQL 서버 설정
MySQL 복제를 사용하려면 먼저 마스터 MySQL 서버를 설정해야 합니다.
마스터 MySQL 서버는 변경된 데이터를 슬레이브 MySQL 서버로 보낼 준비를 하고 있습니다.
1-1 MySQL 구성 파일 수정
MySQL 구성 파일(my.cnf 또는 my.ini)을 수정하여 복제 사용을 준비합니다.
(mysqld)
server-id=1
log-bin=mysql-bin
binlog-do-db=mydb
- server-id : 마스터 MySQL 서버를 식별하기 위한 고유 번호입니다.
각 서버에는 고유 번호가 할당됩니다. - log-bin: 이 설정은 마스터 MySQL 서버의 변경된 데이터를 로그 파일에 기록합니다.
- binlog-do-db : 로그 파일에 쓸 데이터베이스 이름을 지정합니다.
1-2 MySQL 사용자 추가
슬레이브 MySQL 서버가 마스터 MySQL 서버에 연결할 수 있도록 MySQL 사용자를 추가합니다.
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
- ‘repl’@’%’ : 접속을 허용할 IP 주소를 지정합니다.
%는 모든 IP 주소를 허용함을 의미합니다. - 비밀번호 : 사용자 비밀번호를 지정합니다.
1-3 MySQL 재시작
변경된 설정을 적용하기 위해 MySQL 서비스를 재시작합니다.
sudo systemctl restart mysql
2. 슬레이브 MySQL 서버 설정
마스터 MySQL 서버에서 변경된 데이터를 수락하도록 슬레이브 MySQL 서버를 설정합니다.
2-1 MySQL 구성 파일 수정
MySQL 구성 파일(my.cnf 또는 my.ini)을 수정하여 복제 사용을 준비합니다.
(mysqld)
server-id=2
relay-log=mysql-relay-bin
log-slave-updates
- server-id : 슬레이브 MySQL 서버를 식별하기 위한 고유 번호입니다.
마스터 MySQL 서버의 서버 ID와 겹치지 않도록 고유 번호를 부여합니다. - relay-log: 이 설정은 마스터 MySQL 서버에서 변경된 데이터를 로그 파일에 기록합니다.
- log-slave-updates : 슬레이브 MySQL 서버에서 변경된 데이터가 로그 파일에도 기록되도록 합니다.
2-2 MySQL 재시작
변경된 설정을 적용하기 위해 MySQL 서비스를 재시작합니다.
sudo systemctl restart mysql
2-3 슬레이브 MySQL 서버 설정
복제는 마스터 MySQL 서버에 연결된 슬레이브 MySQL 서버에서 시작됩니다.
CHANGE MASTER TO
-> MASTER_HOST='master_ip_address',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='password',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=123;
START SLAVE;
- MASTER_HOST : 마스터 MySQL 서버의 IP 주소를 지정합니다.
- MASTER_USER : 마스터 MySQL 서버에 연결할 사용자 이름을 지정합니다.
- MASTER_PASSWORD : 사용자 비밀번호를 지정합니다.
- MASTER_LOG_FILE : 마스터 MySQL 서버에서 변경된 데이터를 기록하는 로그 파일의 이름을 지정합니다.
- MASTER_LOG_POS: 마스터 MySQL 서버에서 변경된 데이터가 기록되는 로그 파일 내의 위치를 지정합니다.
3. 복제 상태 확인
복제가 정상적으로 되는지 확인합니다.
SHOW SLAVE STATUS\G
위 명령을 실행하여 슬레이브 MySQL 서버 복제 상태를 확인합니다.
Slave_IO_Running 및 Slave_SQL_Running이 Yes로 표시되면 복제가 정상적으로 작동하고 있음을 의미합니다.
위에서 MySQL 복제를 설정하는 방법을 설명했습니다.
복제를 사용하여 데이터베이스 안정성, 부하 분산 및 데이터 분석을 개선할 수 있습니다.
참조 URL
– mysql 5.7 복제 설정: https://scbyun.com/1091
– MySQL 복제 설정: https://scbyun.com/749
– MySQL 복제 설정: https://scbyun.com/429