master 서버의 mysql 데이터를 slave 서버로 원격 복제하고 싶은 경우가 있는데, 이때 활용할 수 있음.
다만, 오랜기간 실험한 것이 아니라 다소 불안정할 수 있는 점 양해 바랍니다^^
서버환경:
CentOS7, mysql 5.7
[Master 서버 설정]
1. 설정
# vi /etc/my.cnf 에 아래 내용 추가
log-bin=mysql-bin
server-id=1 <-- 1~32 숫자 슬레이브와 중복되지 않게)
max_binlog_size=1G <-- 여기서부터 옵션
expire_logs_days=7
binlog_do_db='데이터베이스' <-- 데이터베이스 단위로, 없으면 전체 복제
2. 유저 만들기
mysql > GRANT REPLICATION SLAVE ON *.* TO '유저아이디'@'%' IDENTIFIED BY '패스워드';
mysql > flush privileges;
3. 재시작
# systemctl restart mysqld
[Slave 서버 설정]
1. 설정
# vi /etc/my.cnf 에 추가
server-id=2
replicate-do-db='데이터베이스'
2. 복제하고 싶은 데이터베이스를 Slave로 복사
# mysqldump -u -p DB | mysql -h -u -p DB
mysql > FLUSH TABLES WITH READ LOCK; <-- 덤프시 쓰기 금지
3. 마스터 변경
mysql 로그인
mysql > change master to master_host ='123.123.123.123', master_port =3306, master_user ='유저아이디', master_password ='패스워드', master_log_file ='mysql-bin.000002', master_log_pos =154;
mysql > start slave;
4. 슬레이브 상태확인
mysql > show slave status\G;
5. 마스터 상태확인
master_log_file 보기
mysql > show master status;
master position 보기
mysql > show master status;
*** 슬레이브에서 쓰기 요청하지 말것
*** 주기적으로 상태를 체크할 것
'IT > MySql' 카테고리의 다른 글
Mysql 5.7 root 패스워드 (413) | 2022.08.31 |
---|---|
Mysql 테이블내 중목데이터 삭제 (0) | 2022.08.31 |
Mysql utf8 collation 문제 (0) | 2022.08.29 |
MySql 2개 테이블 JOIN 업데이트 / 삭제 (384) | 2022.08.29 |
MySql Fulltext 검색 (0) | 2022.08.29 |