>  기사  >  데이터 베이스  >  MySQL은 마스터-슬레이브 복제 기능을 구현합니다.

MySQL은 마스터-슬레이브 복제 기능을 구현합니다.

步履不停
步履不停원래의
2019-06-19 14:43:582111검색

MySQL은 마스터-슬레이브 복제 기능을 구현합니다.

환경 설명

                                                                사용 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ 

기본 개념

MySQL에 내장된 복제 기능은 대규모 고성능 애플리케이션을 구축하기 위한 기반입니다. 수억 개의 MySQL 데이터를 여러 시스템에 배포합니다. 이 배포 메커니즘은 특정 MySQL 호스트의 데이터를 다른 호스트(슬레이브)에 복사하고 다시 실행함으로써 달성됩니다. 복제 중에 하나의 서버는 서버 역할을 하고 하나 이상의 다른 서버는 슬레이브 역할을 합니다. 마스터는 바이너리 로그에 업데이트를 기록하고 파일 인덱스를 유지하여 로그 회전을 추적합니다. 이러한 로그는 슬레이브 서버로 전송된 업데이트를 기록합니다. 슬레이브가 마스터에 연결되면 슬레이브가 로그에서 읽은 마지막 성공적인 업데이트 위치를 마스터에 알리고, 슬레이브는 그 이후 발생한 모든 업데이트를 수신한 다음 차단합니다. 마스터는 새 업데이트를 알립니다. 복제할 때 복제 테이블에 대한 모든 업데이트는 기본 서버에서 이루어져야 합니다. 그렇지 않으면 마스터 서버의 테이블에 대한 사용자 업데이트와 서버의 테이블 업데이트 사이에 충돌이 발생하지 않도록 주의해야 합니다

마스터-슬레이브 복제 구현

1. 마스터 서버 수정

기사에 따라 MySQL을 설치하는 경우 내가 쓴 다음 my.cnf 구성 파일은 /etc/ 디렉터리에 있습니다. 없으면 whereis 명령을 통해 검색할 수 있습니다.

server_id=1 #指定MySQL的id
log-bin=mysql-bin #开启二进制日志文件

주소)

GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...';

3. 슬레이브 서버 수정

server_id=2
log-bin=mysql-bin
binlog_do_db=db_test#表示要同步的数据库

설명: binlog-ignore- db=test는 동기화되지 않은 테스트 데이터베이스를 의미합니다. binlog_do_db=db_test#는 동기화할 데이터베이스를 의미합니다

4. MySQL을 다시 시작

메인 서버를 다시 시작합니다. 슬레이브 서버와 슬레이브 서버를 모두 다시 시작합니다.

service mysqld restart

    5. 마스터 서버 상태 확인

show master status

결과는 다음과 같습니다.

여기에 일부 정보를 기록해야 하며, 이는 슬레이브 서버 구성 시 사용됩니다. 6. 슬레이브 서버 구성(마스터 서버에 연결)

change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041;

master_host는 마스터의 IP입니다. server master_port=3306 (여기서는 설정하지 않음, 기본값은 3306) master_user: 마스터 서버 인증 사용자, 즉 이전에 마스터가 생성한 사용자 master_password: 마스터 서버 인증 사용자 해당 비밀번호 master_log_file: 마스터 binlog 파일 이름 master_log_pos: 마스터 binlog 내 위치 값 file 위치 값에 대해 설명은 다음과 같습니다. 마스터 서버에 이미 많은 데이터가 있는 경우 먼저 마스터 서버의 데이터를 슬레이브 서버에 백업한 다음 show master status 명령을 사용하여 데이터를 기록해야 합니다. 필수 동기화를 시작할 위치입니다. #         7. 슬레이브 서버에서 복제를 시작하고

start slave

를 실행합니다. 중지 명령은 다음과 같습니다. 구성에 실패할 경우 MySQL 로그 파일에서 실패 정보를 확인하거나, 위 명령어를 통해 간단한 오류 메시지를 확인할 수 있습니다.

방금 마스터-슬레이브 서버를 구성했을 때 발생한 오류입니다. 주된 이유는 MySQL 서버의 UUID가 마스터 서버에서 복사되었기 때문입니다. /var/lib/mysql/auto.cnf로 이동하여 수정하세요. #마스터-슬레이브 결과 확인 현재 상태:

下载 (2).jpg

아래에 새 테이블을 생성하여 동기화 가능 여부 확인:

#슬레이브 서버 보기

下载 (3).jpg

동기화가 완료된 것을 확인할 수 있습니다

더 많은 MySQL 관련 기술 기사를 보려면 MySQL Tutorial 칼럼을 방문하여 알아보세요!

위 내용은 MySQL은 마스터-슬레이브 복제 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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