centos7을 기반으로 MySQL8 마스터-슬레이브 복제 구성 설치

1. 마스터-슬레이브 복제 원리

  1. 데이터 변경 사항은 메인 라이브러리의 바이너리 로그에 기록되며 이러한 기록을 바이너리 로그 이벤트라고합니다.
  2. 슬레이브 라이브러리는 IO 스레드를 사용하여 메인 라이브러리의 로그를 자체 릴레이 로그 (릴레이 로그)에 복사합니다.
  3. SQL 스레드를 통해 라이브러리에서 릴레이 로그의 이벤트를 읽고 자신의 데이터에서 재생합니다.
    여기에 사진 설명 삽입

1.1. 환경 준비

Centos7 설치 mysql8 데이터베이스 참조 기사 주소
서버 환경 : centos7 mysql 버전 : 8.0.18
마스터 서버 : 192.168.60.165
슬레이브 서버 : 192.168.60.206
다른 기사는 다음과 같이 서버 mysql 터미널에서 작동하는 작업 명령의 일부입니다. Navicat은 데이터베이스에 연결하여 명령을 실행합니다.

2. 기본 서버 노드

2.1, my.cnf 파일 수정

[root@localhost ~]# vi /etc/my.cnf
#服务器节点id,一般为服务器ip方便区分
server-id=230
#开启日志文件
log-bin=mysql-bin
#指定要同步的数据库,多个用逗号隔开(可以不用配置)
binlog_do_db=user_db

2.1.1, 구성이 성공했는지 확인

#重启mysql服务
systemctl restart mysqld
#查看mysql服务状态
systemctl status mysqld

2.1.2, 쿼리 server_id가 있는지 확인

## 验证查询server_id是否存在 
 show variables like '%server_id%';

2.1.3, 동기화 된 파일 및 줄 수 쿼리

# 查询同步的文件和行数,如下查询的数据在从服务器上执行命令会用到。
show master status;  

3. 슬레이브 서버 노드

3.1, my.cnf 파일 수정

[root@localhost ~]# vi /etc/my.cnf
 
#服务器节点id,一般为服务器ip方便区分
server-id=235
#开启日志文件
log-bin=mysql-bin
#指定要同步的数据库,多个用逗号隔开(可以不用配置)
binlog_do_db=gi_test

3.2, 구성이 성공했는지 확인

#重启mysql服务
systemctl restart mysqld
#查看mysql服务状态
systemctl status mysqld

3.2.1, 쿼리 server_id가 있는지 확인

## 验证查询server_id是否存在 
 show variables like '%server_id%';

3.2.2, 서버에서 마스터 서버 구성 동기화

#从服务器器同步主服务器配置
	## master_log_file='mysql-bin.000002' 表示要同步的日志文件File,
	##是主服务器上述命令‘show master status;'查询出来的值 
	## master_log_pos=155 表示要同步日志文件的位置(多少行),详见上图。
change master to master_host='192.168.60.165',master_user='admini',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=155;
#开启同步
start slave
#检查从服务器复制功能状态
show slave status;

참고 : 위 그림에 표시된 빨간색 상자의 두 필드는 예이며 이는 마스터-슬레이브 복제가 성공적으로 시작되었음을 의미합니다.

4. 기능 테스트

기본 데이터베이스 192.168.60.165에 새 테이블 tb_uesr을 생성합니다.

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`user_id` bigint(20) NOT NULL COMMENT '用户id',
`fullname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户姓名',
`user_type` char(1) DEFAULT NULL COMMENT '用户类型',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

그런 다음 192.168.60.206 데이터베이스로 이동하여 테이블에 tb_user가 존재하는지 확인합니다. 존재하는 경우 구성이 완료된 것입니다.

추천

출처blog.csdn.net/zhouzhiwengang/article/details/112369713