mysql主从复制(一):一主多从
一 应用背景
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。下图就描述了一个多个数据库间主从复制与读写分离的模型。web服务器(tomcat,apache,iis,weblogic等)从多个slave数据库进行读操作,从master数据库进行写操作,如图:
在一主多从的数据库体系中,多个从服务器采用异步的方式更新主数据库的变化,业务服务器在执行写或者相关修改数据库的操作是在主服务器上进行的,读操作则是在各从服务器上进行。
二 主从复制原理
Mysql主从复制的实现原理如下图所示:
MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。
三 主从复制的实现
实验环境:centos6.5 32位,mysql5.6.16
master节点设定:主机名->tai2 ip->169.254.130.11
slave节点设定:主机名->tai1 ip->169.254.130.10
slave节点设定:主机名->tai3 ip->169.254.130.12
1. master节点上的操作
1.1 开启二进制日志
修改/usr/my.cnf 文件,加入如下配置
# vi /usr/my.cnf
参数解释:log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin
binlog-ignore-db //表示不同步什么数据库
binlog-do-db //表示只同步什么数据库,除此之外,其它不同步(如果这个参数配置了,上面那个参数可以不配置)
1.2 配置唯一的server-id
重启mysql
# service mysql restart
1.3 获得master二进制日志文件名及位置(Position)
注意:
执行完之后记录下这两值(File,Position),然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变
1.4 创建一个用于slave和master通信的用户账号
GRANT replication slave ON *.* TO 'wx123'@'%' IDENTIFIED BY '1234';
参数解释如下图:
然后执行命令
mysql> flush privileges
刷新MySQL的系统权限相关表,以避免出现拒绝访问的情况
2. slave节点上的配置
2.1 配置唯一的server-id
和master的配置类似,如下图
重启mysql服务
#service mysql restart
2.2 使用master分配的用户账号读取master二进制日志
登录mysql,先关闭slave,
关闭slave(如果你以前配置过主从的话,一定要先关闭)
命令:stop slave;
再执行命令
change master to
master_host="169.254.130.11",
master_user="wx123",
master_password="123456",
master_log_file="mysql-bin.000028",
master_log_pos=455;
参数解释:MASTER_HOST : 设置要连接的主服务器的ip地址
MASTER_USER : 设置要连接的主服务器的用户名
MASTER_PASSWORD : 设置要连接的主服务器的密码
MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息
MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)
2.4 启用slave服务
# start slave;
查看是否配置成功:
命令: show slave status;
(可以在sqlyog里面执行,会看得很清楚)
另外一台从库的操作方式类似,好了,主从复制就此ok!
注意事项:如果主库里面有初始化数据,那么在主从复制前需要把数据先导入到从库以保证初始一致性!
mysql主从复制(一):一主多从相关推荐
- 看完这篇还不懂 MySQL 主从复制,可以回家躺平了~
我们在平时工作中,使用最多的数据库就是 MySQL 了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机. 这样我们保存在 MySQL 数据库的数据就会丢失,那么该怎么解决呢? 其实 ...
- 你了解MySQL 主从复制吗?
目录 1.背景 2.主从复制的形式 3.原理 4.过程 5.类型 5.方式 6.配置 7.问题 8.注意事项 9.作用 10.应用场景 1.背景 随着业务的增加,如果单单靠一台服务器的话,负载过重,就 ...
- docker安装mysql[主从复制版]
概述: 总所周知,使用docker安装一些中间件是非常快速和便捷的,搭建mysql主从复制[1主n从节点或n主n从节点],这里我为了演示简单一点,选择搭建mysql主从复制的[1主1从]并使用mysq ...
- 看完这篇还不懂 MySQL 主从复制?那就回家葛优躺吧!
前言 我们在平时工作中,使用最多的数据库就是 MySQL 了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机. 这样我们保存在 MySQL 数据库的数据就会丢失,那么该怎么解决呢? ...
- MySQL主从复制配置过程(双主双从模式)
环境准备 为了搭建MySQL数据库主从复制(双主双从模式),准备一下四台服务器,并明确了各节点的角色及IP地址. 角色 IP地址 节点名称 Master1 192.168.67.140 CentOS0 ...
- mysql 主从复制 双主从复制原理 防止主键重复问题(必看)
双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到 ...
- mysql主从复制,半同步,主主复制架构的实现
mysql的数据同步功能,不仅在一定程度上提供数据库查询时的负载均衡,而且为实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助.而数据的同步功能可以通过主从复制来实现,而主从复制是异步进行的,并且 ...
- php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制
Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...
- 运维之道 | MySQL主从复制、主主复制
MySQL主从复制.主主复制 主从复制:主库可写(会写入从库)可读,从库只能读 主主复制:两个库可写可读,一个库修改会写入另一个库 一.主从复制 1.准备两台服务器 主库服务器 192.168.1.1 ...
最新文章
- Anaconda查看、删除、增加channel
- MongoDB 3.4 复制集全量同步改进
- 【Codeforces 922D】Robot Vacuum Cleaner
- java 多线程集合操作_多线程中使用Java集合类
- 【ssi】增删改查六操作小框架(八)
- window apktool 的下载
- 网页编码_Python获取网页编码(apparent_encoding)
- C++小游戏 双人贪吃蛇
- MyBatis拦截器实现SQL打印
- html怎样让页面居中显示,HTML怎么让页面居中
- Tech Blog by Eason!
- AHRS和IMU的联系和区别
- 计算机内存数值存储方式(原码、反码、补码)
- 如何快速把芝麻信用分提高到750以上?
- 浅谈sPLS和sgPLS
- 华为2016年精英挑战赛总结
- 【034】翼辉信息获得“核高基”重大专项支持
- 大数据正在改变我们的生活
- 写个dump_stack【转】
- NetNut住宅代理,超500万个IP可选!
热门文章
- 怎样提取音频制作手机铃声
- 已解决SyntaxError:expected ‘:‘
- PHP将ppt转成图片查看
- 画saliency intensity map图,pytorch版本
- NAM: Normalization-based Attention Module,一种新的注意力计算方式,无需额外的参数...
- Linux系统之Xinetd服务
- Linux之Xinetd服务介绍
- 自己搭服务器 做购物网站成本,从零搭建一个购物网站,实操经验
- 入手评测 i3 12100F 和 i5 12400F选哪个
- Linux之dos2unix和unix2dos