>  기사  >  데이터 베이스  >  MySQL 5.7 도커 마스터-슬레이브 복제 아키텍처 tutorial_MySQL

MySQL 5.7 도커 마스터-슬레이브 복제 아키텍처 tutorial_MySQL

WBOY
WBOY원래의
2016-09-09 08:13:391025검색

참고용으로 mysql 5.7 docker 마스터-슬레이브 복제 아키텍처 튜토리얼을 공유하세요

환경 버전:
MySQL: 5.7.13
도커: 1.11.2
CentOS : 7.1

1. 먼저 두 개의 물리적 머신에 두 개의 MySQL을 설치합니다. 명령어는 다음과 같습니다

코드는 다음과 같습니다.

docker pull mysql:5.7.13
docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13


2. 메인 데이터베이스에 복사 계정을 생성하세요

코드는 다음과 같습니다.

GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK';


복사된 계정은 다음과 같습니다: rep1
지정된 슬레이브 라이브러리의 IP는 192.168.2.103
이어야 합니다. 복사 비밀번호는 qaz.00JK

3. 메인 라이브러리의 구성 파일을 수정합니다 (번거로우시겠지만 좀 더 편리한 수정 방법이 있어야 합니다)

3.1 먼저 docker에서 호스트/루트 디렉터리로 구성 파일을 복사합니다.

docker cp anuo-mysql:/etc/mysql/my.cnf /root

3.2 호스트에서 my.cnf를 열고 [mysqld] 노드 끝에

을 추가합니다.

log-bin=mysql-bin
서버 ID=1

3.3 그런 다음 이 파일을 docker mysql에 업로드하고 덮어씁니다

docker cp /root/my.cnf anuo-mysql:/etc/mysql/my.cnf

3.4 mysql의 docker를 다시 시작하여 구성을 적용하세요
docker restart anuo-mysql

4. 슬레이브 라이브러리 구성 파일 수정

3단계와 동일하며 차이점은
서버 ID=2

5. 백업을 시작합니다. 기본 데이터베이스에서 다음 명령을 실행하여 기본 데이터베이스의 모든 테이블을 읽기 전용 및 쓰기 불가 상태로 설정하여 테이블 간의 데이터 일관성을 유지합니다. 마스터 및 슬레이브 데이터베이스

읽기 잠금 기능이 있는 테이블 플러시

6. 메인 데이터베이스의 데이터베이스를 백업하고 슬레이브 데이터베이스에서 복원합니다

mysql에 navicat을 사용하면 매우 편리합니다

7. 슬레이브 라이브러리 복원 후 메인 라이브러리의 읽기 잠금을 해제하여 메인 라이브러리가 쓰기 권한을 복원할 수 있도록 합니다

테이블 잠금 해제

8. 메인 라이브러리에 연결하여 슬레이브 라이브러리에서 실행하도록 슬레이브 라이브러리를 구성합니다

CHANGE MASTER TO 
MASTER_HOST='192.168.2.108', 
MASTER_PORT=3306, 
MASTER_USER='rep1', 
MASTER_PASSWORD='qaz.00JK', 
MASTER_LOG_FILE='mysql-bin.000002', 
MASTER_LOG_POS=898;

마지막 2개 항목
MASTER_LOG_FILE 및 MASTER_LOG_POS
메인 라이브러리에서 실행:
을 얻기 위해 SHOW MASTER STATUS; 해당 필드는 파일 및 위치입니다

9. 슬레이브 라이브러리에서 슬레이브 스레드를 시작하여 동기화를 시작합니다
슬레이브 시작;

10. 슬레이브 라이브러리의 동기화 상태를 확인하세요
슬레이브 상태 표시
Slave_Io_State 필드가 보이는 경우:

마스터가 이벤트를 보내길 기다리는 중...
그렇다면 성공!!!

이상은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되길 바라며, 많은 응원 부탁드립니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.