基于centos7安装MySQL8主从复制配置
不点
阅读:687
2021-03-31 12:52:44
评论:0
1、主从复制原理
- 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
- 从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
- 从库通过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,如果存在则表示已经配置成功
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。