마스터 - 슬레이브와 동기화 배포 MySQL의 데이터를 실현

첫째, 설치 환경 설명
, centos6.8
mysql5.7,
VM웨어 가상 호스트 (마스터) 192.168.5.108
VM웨어 가상 머신 (슬레이브) 대기 마스터와 슬레이브 기계 -linux Ping 할 필요가 사이 192.168.5.109 동시에 기본 포트 (22)가 열립니다 .
주 : 의사 소통을 할 필요가 그들 사이에 있기 때문에 포트가 열려 있어야합니다 (3306)에서 마스터 노드 MySQL의 서비스를. 나는 방화벽을 종료 직접 중지 명령 서비스의 iptables 여기입니다. (A 프로덕션 환경은. 직접 폐쇄 할 수 없습니다) 그러나이 명령이 착륙에 대해서만 유효합니다. 영구적으로 방화벽을 해제해야, 다른 명령을 사용하십시오.

둘째, 마스터 노드 구성
구성 /etc/my.cnf에를 - 이것은 MySQL의 설정 파일입니다

서비스 mysqld를 다시 시작 : 다음 mysql을 다시 시작합니다.
사용자 액세스 권한, 다음 명령에서 라이브러리를 생성, 루트 MySQL의 서비스 사용자로 로그인 :

> ON ALL 권한을 부여 * '루트'@ '%'를 GRANT OPTION의 WITH ;. (이 이하 인 오픈 원격 호출 권한이다) TO

/ * 192.168.5.109 즉, 슬레이브 머신을 부여하는 권한 파일 * /이
>는 부여에있는 파일을 * * '루트';.에 의해 식별되는 TO 'root'@'192.168.5.109'
/ * 주어진 192.168.5.109 슬레이브 복제 기계 권한 * /
> * * 복제의 GRANT하여 ON 'root'@'192.168.5.109'는 '루트'로 식별 노예,.
/ * 새로 고침 * /
> 플러시 특권;
1.
2
3.
4.
5.
6.
7.
8.
참고 :이 입증하는 것입니다 루트 사용자도 부여, 또한 생산 환경에서 추가 사용자를 설정하시기 바랍니다.

초기 상태는 노드를 구축하는 데에서 (사실, 원래의 데이터 백업)

예를 들어, 여기에 내가 어떤 데이터 테이블이없는 appdb 데이터베이스를 만들었습니다. 즉, 초기 상태의 appdb 데이터베이스는 동일한 데이터베이스에서 라이브러리를 만드는 데 필요한 데이터를 동기화 할 필요성이 간단하지 않습니다.
그러나 종종 현실 세계가이 동기화를 확장하기 위해 이미 줄에 프로젝트의 시나리오가있을 수 있습니다, 데이터베이스 동기화는 데이터, 다음 시간은 다음 첫 번째 노드로부터 데이터를 복사 할 필요가있다이 시간에 필요 mysqldump는 명령은 xx.sql 내보내기 파일을 달성하는 데 사용할 수 있습니다. SQL은 다음이 문서가 노드에서 노드의 초기 상태에서 실현 될 수 가져옵니다.

다시 시작 MySQL은, MySQL의 로그인 기본 라이브러리 정보를 표시

> 서비스를 다시 시작 mysqld에
> MySQL의 -uroot -proot;
> 쇼 마스터 상태;
1
2
3


파일 필드 것을, [위치] 필드가 기록해야합니다 나중에 구성 노드를 사용해야합니다.

셋째, 구성 노드에서
구성 /etc/my.cnf에 - 이것은 MySQL의 설정 파일입니다

서비스 mysqld를 다시 시작 : 다음 mysql을 다시 시작합니다.
루트 MySQL의 서비스, 정보의 지정 마스터로 로그인 :

MySQL은> 노예를 중지; #은 슬레이브 닫습니다

여기서 (154와 MySQL-bin.000002이다 MySQL은> 변경 마스터 = '192.168.5.108'master_user = '루트'master_password = '루트'MASTER_LOG_FILE = 'MySQL을 bin.000002'MASTER_LOG_POS = 154 MASTER_HOST 할 해당 호스트의 MySQL 바이너리 로그 파일 이름과 독자의 위치)

MySQL의> 슬레이브을 시작 #이 슬레이브를 열고
1.
2,
3.
4.
5.
구성이 성공적으로 확인 - 명령 : 쇼 노예 상태 \의 G;


아홉 번째 행의 (154)을 유의하시기 바랍니다, 그것은 우리가 위에서 설정 한 경우, 위의 구성이 성공적으로 증명할 볼 수 있습니다.

단순히 appdb 데이터베이스의 이름을 만들려면 여기를하지만, 초기 상태를 설정하지만, 동기화의 기초 인 경우 데이터 테이블 데이터의 원래 양, 위의 xx.sql 파일을 가져올 필요성이 시간.
테스트

(처음에는 테이블이없는), 그것은 TEST1 데이터 시트를 가질 수 있음을 발견 할 것이다, 슬레이브를 볼 다음 마스터 테이블 TEST1에 새로운, 그리고
마스터에 TEST1 테이블에 데이터의 조각을 삽입 한 후 TEST1 테이블의 슬레이브 선택 당신이 유사한 데이터베이스를 찾을 것 봐.
다른 테이블에 동일하게 추가 또는 삭제 당신은 노예가 완전히 appdb의 데이터베이스에 마스터 데이터를 동기화 된 찾을 수 있습니다, 데이터 테이블에, 추가 및 삭제를 변경할 수 있습니다.
1
2
3
이 성공적으로 마스터 - 슬레이브 아키텍처 MySQL의 백업을 완료,하지만 허점이있다 :
예를 들어, 데이터 동기화, 나는 노드로부터 데이터를 직접 수정하는 경우, 어떤 일이 일어날 것인가? 나는,이 시스템이 불평 추정이 확인을하지 않았고 그것은 노예 작동이 중지됩니다. 결국,이 이미 동기화의 원래 의도에 반하는 것입니다. 모든 솔루션은 사용자가 라이브러리에서 데이터를 수정할 수 있도록하는 것입니다 개선 할 필요가있다.

계속되는

동기화 데이터가 있기 때문에, 어떻게 복원? 나는 HA mysql을 할 수 있습니까?
프로덕션 환경에서 고장이있을 경우, 어떻게 데이터를 롤백하려면?
---------------------
저자 : lisa_csdn
출처 : CSDN
원본 : HTTPS : //blog.csdn.net/lisa_csdn/article/details/78684987
면책 조항 :이 문서 블로거 원래 기사 재현으로, 보웬 링크를 첨부 해주세요!

추천

출처www.cnblogs.com/HKROnline-SyncNavigator/p/10972484.html