码迷,mamicode.com
首页 > 数据库 > 详细

mysql进阶学习二之搭建主从

时间:2021-02-05 10:32:34      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:创建数据库   创建表   同步   star   master   system   span   mat   主从   

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

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这个位置开始同步的,主节点前面的其他操作都不会被同步,主从复制都搭建好了之后再创建数据库!!!

技术图片

  

  (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;

技术图片

 

4.测试

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

技术图片

 

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

技术图片

 

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

技术图片

 

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

技术图片

  

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

mysql进阶学习二之搭建主从

标签:创建数据库   创建表   同步   star   master   system   span   mat   主从   

原文地址:https://www.cnblogs.com/wyq1995/p/14363751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!