mysql主从复制原理及步骤
原理:
1master开启bin-log功能,日志文件用于记录数据库的读写增删
2需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,
3Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。
4MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。
5slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。
6slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,在slave数据库中去执行。
步骤一:
准备两个mysql,一个做主,一个做从。防火墙,selinux都要关闭,保证可以ping通对方
主服务器配置:
vi/etc/ntp.conf
添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 8
service ntpd start #因为同步数据 两个服务器的时间也要同步。
稍后要在从服务器执行来同步时间
vi/etc/my.cnf
在配置文件49行
其他内容都可以保持默认。
步骤二:在主服务器登录mysql 给从服务器授权。
mysql> grant replication slave on *.* to zs@'192.168.43.%' identified by '123456';
授权用户zs 密码为123456 允许192.168.43.0的网络连接 一会儿要在slave上使用这个账号
show master status; #此命令查看主服务器的bin-log日志文件名称和position点
从服务器就是要指定这个文件maste-bin.000001 (随着mysql增删修改日志文件名字也有可能改变) 和 107 (position点 主服务器增删修改都会改变)所以现在开始就不要再在主服务器创表干啥的了,
mysqldump -uroot -p --opt --all-databases >/all_databases.sql #导出主数据库的数据
scp -r /all_databases.sql root@192.168.43.2:/ #用scp把数据复制到从服务器。
因为主从复制是从主从关系建立完毕开始同步的。也就是现在 position 107之前的内容复制不了所以要手动复制主之前的数据导入从数据库。
步骤三:从服务器配置
/usr/sbin/ntpdate 192.168.43.22 #和主服务器同步时间。192.168.43.22为主服务器ip
mysql -u root -p </all_databases.sql #导入数据
vi /etc/my.cnf
步骤四:修改后重启mysql服务
进入从服务器的mysql
change master to master_host='192.168.43.22',master_user='zs',master_password='123456',master_log_file='maste-bin.000001',master_log_pos=107;
start slave; #开启SQL线程
show slave status\G; 查看从服务器状态
注意两个都要是yes才是正常。
步骤五:查看效果
在主服务器上创建个库看看。
从数据库也会有
同样删掉数据库从数据库也会复制。
主库上删除一个数据库。
从库上也没了。
最新文章
- EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
- Switch&NAT 测试
- CSS3判断手机横屏竖屏
- linux iostat 性能指标说明
- 思科产品选型pdf
- history命令显示出详细时间
- CLLocationManager 位置定位
- vi快捷键必知必会
- 使用POI创建Excel文件下载
- Gulp自动构建前端开发一体化
- C语言集成开发环境vs2017的使用技巧之修改快捷键
- 增强遍历和Object多参数遍历
- Oracle数据库知识要点
- 一、Win10搭建IIS
- Cmder--cmd的替代工具
- python 链表表达式 map、filter易读版
- java泛型的作用及实现原理
- BZOJ 2810 [Apio2012]kunai
- 一个vue请求接口渲染页面的例子
- java发送get,post请求
热门文章
- 深入理解Java自动装箱拆箱机制
- CSS 定位 四种定位
- CSS设置元素的隐藏和显示
- 一个SAP顾问的回忆:我过去很胖!
- python 把函数的值赋给变量
- C# 修改Config文件,增删查改
- SSO单点登录 与 CAS
- 将windows当做linux/Mac来用 scoop强大的包管理工具
- webpack Uncaught ReferenceError: Swiper is not defined
- [zhuanzai]Bean对象注入失败 .NoSuchBeanDefinitionException: No qualifying bean of type..