MySQL 미러링 (REPLICATION)
1. Master DB와 Slave DB에 Mysql 을 설치
2. Master DB와 Slave DB의 Mysql 의 데이터를 일치시킴. (mysqldump 등을 이용)
3. Master DB와 Slave DB의 my.cnf(보통 /etc/my.cnf에 존재) 수정
<<<Master DB>>>
[mysqld]
log-bin
server-id=1
<<<Slave DB>>>
[mysqld]
server-id=2
서버자체가 로컬로스트에서만 접속이 가능하다도록 설정되어 있다면 외부에서도 접속할 수 있도록 아래와 같이 옵션을 변경한다. (우부투의 경우)
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
4. Create a User for Replication
Slave들이 Master에 접근하기위해서 Master의 User계정이 필요하다.
어떤 계정이든 상관없고 REPLICATION SLAVE 권한이 필요하다.
Slave마다 다른 계정을 줄 수도 있고 같은 계정을 줄 수도 있다.
어떤 계정을 따로 만들 필요없지만
master.info에 평문으로 User name과 password가 저장된다는 것을 알고 있어야 한다.
그러므로 Replication 작업만을 위한 계정을 따로 생성할 필요가 있다.
마스터에서 등록한다.
mysql> CREATE USER 'repl'@'IP주소 or 호스트이름' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';
슬레이브에서 등록한다.
mysql > CHANGE MASTER TO MASTER_HOST='192.168.146.134',MASTER_USER='repl',MASTER_PASSWORD='passwd', MASTER_PORT=3306, MASTER_CONNECT_RETRY=30;
mysql > start slave;
5. 기타
덤프
$ mysqldump -uroot -p -A > all.sql
복원
$ mysql -uroot -p < all.sql