1. 서버 정보
IP : 172.20.102.111 (master), 172.20.102.112 (slave)
db : test_db
user : test
pw : test1
2. MASTER 설정
1) DB생성 / 계정생성 / 권한 부여
2) my.cnf
vi /etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin (바이너리 로그파일 생성경로, log-bin만 기입시 default)
server-id = 1
3) mysql 재시작
3. Master 정보 보기
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000010 | 1 | | |
+------------------+----------+--------------+------------------+
4. Slave 설정
1) my.cnf
vi /etc/mysql/my.cnf
[mysqld]
server-id=2
replicate-do-db='test_db'
2) database dump
복제할 데이터베이스 master로부터 dump
mysqldump --login-path=test test_db > test.sql (master에서)
mysql --login-path=test < test.sql (slave에서)
3) master 연결
mysql> change master to
master_host='172.20.102.111',
master_user='test',
master_password='test1',
master_log_file='mysql-bin.000010',
master_log_pos=1;
4) 재시작
5. 확인
mysql > show processlist \G; (mastser, slave)
mysql > show slave status;
6. UUID 에러
– Slave에서 show slave status; 명령어 입력시 아래와 같은 에러 출력
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
- slave에서 auto.cnf를 삭제해주면 된다
systemctl stop mysql
rm -rf /var/lib/mysql/auto.cnf
systemctl start mysql