linux mysql进阶_mysql进阶学习二之搭建主从

前面说了主从复制的原理,现在我们搭建主从结构

1. 提前准备

我准备了两台主机,主节点是远程的centos7,从节点是本机windows

主从复制的原理在上一篇已经说了:主节点中mysql创建一个用户,专门提供给从节点去复制主节点的binlog文件,然后从节点的io线程将获取到的文件内容复制到自己的中继日志中,最后从节点的SQL线程读取中继日志,同步数据;

2. 配置linux主节点

(1)登录mysql,新建一个mysql账号:GRANT REPLICATION SLAVE ON *.* to ‘java‘@‘%‘ identified by ‘123456‘;  //这个账号名是java,密码是123456,所有远程都可以通过这个账号和密码去读主节点mysql中的binlog

(2)修改my.cnf配置文件

linux使用yum安装的话,可以使用vim /etc/my.cnf打开mysql的配置文件:

#id唯一

server-id=1

#开启binlog,同时日志文件名为my_bin_log

log-bin=my_bin_log#主从复制需要同步到从节点的数据库

binlog-do-db=mydb

binlog_format=STATEMENT

binlog_format有三种:

statement表示每一条增删改的sql都会记录到bin_log中,如果sql包含函数now(),那么同步到从节点执行该sql会导致数据不一致;

row表示记录最终每一行数据的变化,同步到从节点中的数据肯定一致;

mixed表示混合模式,sql中有函数就使用row模式,没有函数就使用statement

(3)查询主节点的binlog文件名和position;

为什么要知道这个position呢?因为从节点就是从主节点的position这个位置开始同步的,主节点前面的其他操作都不会被同步,主从复制都搭建好了之后再创建数据库!!!

20210205103234060322.png

(4)重启主节点mysql服务: systemctl restart mysqld

3  配置windows从节点

(1)修改从节点的配置文件my.ini

#从节点配置

server-id=2

#从节点需要同步的库,需要和主节点对应

replicate-do-db=mydb#开启从节点中继日志

relay-log=mysql-relay

(2)重启从节点mysql服务:任务管理器->服务->mysql,右键,重新启动

(3)登录mysql,配置从节点连接主节点,使用我们在主节点配置的用户,还有binlog文件名以及数据库

#配置主节点的ip,用户名,密码,binlog文件名,position

change master to master_host=‘106.77.104.190‘,master_user=‘java‘,master_password=‘123456‘,master_log_file=‘my_bin_log.000001‘,master_log_pos=154;

(4)开启从节点主从复制功能:start slave;

(5)查看从节点mysql服务状态:show slave status\G;

20210205103234091523.png

4.测试

(1)主节点创建其他名字的数据库,从节点不会同步

20210205103234138325.png

(2)主节点创建mydb数据库,从节点会自动同步

20210205103234169526.png

(3)主节点在mydb库中创建表,从节点会同步

20210205103234231928.png

(4)主节点向mydb库中插入数据,从节点会同步

20210205103234263130.png

修改和删除表中的数据,从节点也是会同步的,就不截图了,有兴趣的自己去试试;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值