[master]

shell> vi /etc/my.cnf

[mysqld]
log-bin=mysql-bin
server-id=1

shell> /etc/init.d/mysqld restart

[slave]

shell> vi /etc/my.cnf

[mysqld]
server-id=2

# master와 slave의 server-id는 달라야 한다.

shell> /etc/init.d/mysqld restart

[master]

slave가 접속할 계정 생성

mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';

master 상태 확인

mysql> FLUSH TABLES WITH READ LOCK;
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+

master data snapshot

방법은 2가지

1. 덤프

shell> mysqldump --all-databases --master-data > dbdump.db

 2. raw data file 복사

 폴더 확인

mysql> SHOW VARIABLES WHERE Variable_Name LIKE "datadir"

압축 복사해서 slave의 data 폴더로 복사

table lock 해제

mysql> UNLOCK TABLES;

[slave]

master data snapshot을 덤프 파일로 받아왔다면 복구

shell> mysql -h master < fulldb.dump

마스터 연결 설정

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;

slave 시작

mysql> START SLAVE;

slave 상태 조회

mysql> show slave status;

Last_IO_Errono 메시지 확인


문제 상황

1. Last_IO_Errono 메시지에서 server-id 중복이라는 말이 있다면

my.cnf 수정후 restart를 안한것이다. 혹은 server-id가 진짜 동일한것

2. Last_IO_Errono 메시지에서 uuid가 동일하다는 말이 있다면

mysql> show variables like '%uuid%';

명령어로 master와 slave 의 uuid를 확인해보고

동일하다면

data 폴더의 auto.inf 를 삭제 후 restart 한다

aws에서 Launch More Like This 로 인스턴스 복제 했을 때 위 문제를 경험했다



참고 http://dev.mysql.com/doc/refman/5.6/en/replication-howto.html



'Develop' 카테고리의 다른 글

typescript promise and async await  (0) 2016.11.25
정규표현식 1  (0) 2016.09.22
iis express 다른 pc에서 접속  (0) 2016.08.24
iis express 64 bit  (0) 2016.08.24
구글 연동  (0) 2016.08.18

+ Recent posts