MySQL의 복제 기능은 한 데이터베이스의 데이터를 다른 여러 데이터베이스로 동기화할 수 있습니다. 첫 번째 것을 일반적으로 마스터 데이터베이스(master)라고 하고, 두 번째 것을 슬레이브 데이터베이스(slave)라고 합니다. MySQL 복제 프로세스는 비동기식 방법을 사용하지만 지연이 매우 적고 몇 초 안에 동기화됩니다.
1. 메인 라이브러리에서 발생하는 데이터 변경 사항은 바이너리 로그 Binlog에 기록됩니다
2. 슬레이브 라이브러리의 IO 스레드는 메인 라이브러리의 Binlog를 자체 릴레이에 복사합니다. log Relay log
3 .슬레이브 라이브러리의 SQL 스레드는 릴레이 로그를 읽고 재생하여 데이터 복제를 구현합니다
MySQL 복제에는 명령문 수준, 행 수준, 혼합 수준의 세 가지 모드가 있습니다. 복제 수준이 다르면 마스터 서버가 다른 형태의 이진 로그 파일을 생성하게 됩니다.
운영 체제: centos7
데이터베이스: mysql8
Master: 192.168.0.101
Slave: 192.168.0.102
Host 구성 my.cnf를 수정합니다.
아아아아슬레이브 머신 구성
[mysqld] # 服务器标识,每个服务器不能一样 server_id=101 # 开启日志文件 log_bin=binlog # 普通用户只能读 OFF是关闭状态 read_only=off # 超级用户只能读 OFF是关闭状态 super_read_only=off
서비스 다시 시작
[mysqld] # 服务器标识 server_id=102 # 启用binlog日志,并指定文件名前缀 log_bin=binlog # 普通用户只能读 on是开启状态 read_only=on # 超级用户只能读 on是开启状态 super_read_only=on
데이터베이스에 로그인하여 계정을 생성합니다
systemctl restart mysqld
마스터 데이터베이스 마스터 상태를 확인하고 가져옵니다. 로그 파일 이름 및 오프셋 정보
호스트의 바이너리 로그 작업을 복사합니다. (데이터의 일부는 메인 라이브러리의 마스터 상태를 확인하여 확인합니다.)
호스트의 동기화 계정 : source_user
Password: source_password
Port: source_port
로그 파일: source_log_file
Offset: source_log_pos
create user repl identified with mysql_native_password by 'repl123'; grant replication slave on *.* to repl; flush privileges;
Slave가 동기화를 시작합니다
change replication source to source_host='192.168.0.101', source_user='repl', source_password='repl123', source_port=3306,source_log_file='binlog.000001', source_log_pos=154;
호스트에서 슬레이브로부터의 연결이 있는지 확인하세요.
start replica;
슬레이브 동기화 복제 상태 보기
show processlist;
호스트에서 테이블에 데이터를 삽입하고 슬레이브의 해당 테이블에서 데이터를 확인합니다. 테스트 결과가 매우 좋습니다(생략)
위 내용은 MySQL 동기화 데이터 복제 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!