基于centos7安装MySQL8主从复制配置

1、主从复制原理

  1. 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
  2. 从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
  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;

注意:上图所示红框中两个字段为yes表示已经成功开启了主从复制。

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