MySQL高级知识(十五)——主从复制
前言:本章主要讲解MySQL主从复制的操作步骤。由于环境限制,主机使用Windows环境,从机使用用Linux环境。另外MySQL的版本最好一致,笔者采用的MySQL5.7.22版本,具体安装过程请查询相关资料。
1.主从复制的基本原理
slave会从master读取binlog来进行数据同步。主要有以下三个步骤:
①master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(binary log events)。
②slave将master的binary log events拷贝到中继日志(relay log)。
③slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL的复制是异步且串行化的。
2.主从复制的规则
①每个slave只能有一个master。(一对一)
②每个slave只能有一个唯一的服务器ID。
③每个master可以有多个slave。(一对多)
在主从复制过程中,最大的问题就是延时。
3.一主一从的常见配置
#1.要求。
MySQL版本最好一致且后台以服务运行。并且保证主机与从机互相ping通。主从配置都在[mysqld]结点下,都是小写。
#2.主机修改my.ini配置文件
①server-id=1,主机服务器id。(必须)
②必须启用二进制文件。
log-bin="E:\devSoft\mysql-5.7.22-winx64\data\mysql-bin"
配置该项后,重新启动mysql服务,可看到如下内容。
③启用错误日志。(可选)
log_error ="E:\devSoft\mysql-5.7.22-winx64\data\log\errorlog\log_error.log"
④根目录、数据目录。(可选)
#mysql安装根目录 basedir ="E:\devSoft\mysql-5.7.22-winx64"#mysql数据文件所在位置 datadir ="E:\devSoft\mysql-5.7.22-winx64\data"
⑤临时目录。(可选)
tmpdir ="E:\devSoft\mysql-5.7.22-winx64\"
⑥read-only=0,表示主机读写都可以。
⑦可设置不需要复制的数据库。(可选)
binlog-ignore-db=mysql
⑧可设置需要复制的数据库。(可选)
binlog-do-db=databasename
#3.从机修改my.cnf配置文件
①从服务器ID。(必须)
②启用二进制日志。(可选)
#4.主机与从机都关闭防火墙,其实也可配置ip规则,但关闭防火墙更快速。
#5.在Windows主机上建立账户并授权给slave。
a.首先在主机上创建账户:
#%表示任何客户端都可以连接grant all privileges on *.* to slaveaccount(用户名)@"%(或者指定ip)" identified by '你想设置的密码' with grant option;
b.然后刷新权限表:
flush privileges;
c.然后授权给slave:
GRANT REPLICATION SLAVE ON *.* TO 'slaveaccount(上面创建的用户名)'@'从机数据库ip' IDENTIFIED BY '你想设置的密码'
d.利用b步骤命令再次刷新权限表。
#6.查询master的状态。
File和Position这两个字段非常重要,File告诉从机需要从哪个文件进行复制,Position告诉从机从文件的哪个位置开始复制,在从机上配置时需用到。执行完此操作后,尽量不要在操作主服务器MySQL,防止主服务器状态变化(File和Position状态变化)。
#7.在Linux从机上配置需要的主机。
CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='salveaccount',MASTER_PASSWORD='主机授权的密码',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position数字;
#8.启动从服务器复制功能。
start slave;
启动复制功能后,需要查看主从复制配置是否成功。
注:只有当Slave_IO_Running:Yes和Slave_SQL_Running:Yes,这两个都为Yes的时候,主从复制配置才成功。
#9.进行测试。
①首先在主机上建立数据库并插入数据。
②在从机中查看是否有相应数据库。
通过从机上查看相应数据,可知主从复制配置成功。
#10.停止从服务复制功能。
stop slave;
4.总结
#1.主从复制的配置,大部分都在主机上,注意查看相关步骤。
#2.这里将主从机的防火墙都关闭是为了更好的演示,实际生产环境中一般不会出现windows主机和linux从机这种情况,因此不应该关闭防火墙,而是根据具体情况配置防火墙规则。
by Shawn Chen,2018.6.30日,下午。
相关内容
MySQL高级知识系列目录
转载于:https://www.cnblogs.com/developer_chan/p/9240052.html
MySQL高级知识(十五)——主从复制相关推荐
- MySQL高级知识(五)——索引分析
前言:前面已经学习了explain(执行计划)的相关知识,这里利用explain对索引进行优化分析. 0.准备 首先创建三张表:tb_emp(职工表).tb_dept(部门表)和tb_desc(描述表 ...
- MySQL高级知识(十六)——小表驱动大表
前言:本来小表驱动大表的知识应该在前面就讲解的,但是由于之前并没有学习数据批量插入,因此将其放在这里.在查询的优化中永远小表驱动大表. 1.为什么要小表驱动大表呢 类似循环嵌套 for(int i=5 ...
- Mysql高级知识概括
Mysql高级知识概括 Mysql高级简介 Mysql存储引擎 MYSQL配置文件 MYSQL日志 MVCC MYSQL锁机制 主重复制与读写分离 Mysql分区分表分库 MYSQL字符集与字符序 M ...
- MySQL高级知识(十一)——Show Profile
前言:Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量.默认情况下处于关闭状态,并保存最近15次的运行结果. 1.分析步骤 # ...
- MySQL高级知识(一)——基础
MySQL高级知识(一)--基础 前言:MySQL高级知识 1.关于MySQL的一些文件 MySQL如何安装.如何配置自启动,这里不进行讲述,可自行搜索相关安装教程进行处理.这里主要介绍MySQL的主 ...
- 布尔教育 mysql高级_布尔教育 Mysql高级 燕十八
布尔教育 Mysql高级 燕十八--更多资源,课程更新在 多智时代 duozhishidai.com 多智时代资源,简介: 这是燕十八出的mysql教程,需要的可以看看 目录: 布尔教育 Mysql高 ...
- MySQL高级知识(十四)——行锁
前言:前面学习了表锁的相关知识,本篇主要介绍行锁的相关知识.行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高. 0.准备 #1.创建相关测试表tb_ ...
- MySQL高级知识(十二)——全局查询日志
前言:全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能. 1.如何开启 #1.通过my.cnf配置开启该功能. 注:对my.cnf文件配置后,需重启my ...
- MySQL高级知识(十)——批量插入数据脚本
前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( ...
最新文章
- Windows远程连接的实现
- 红黑树模拟软件_红黑树
- 大型网站SEO执行策略
- leetcode174. 地下城游戏(动态规划)
- oracle静默安装实例和静默删除实例
- Python 学习过程问题记录
- 基于Gsoap 的ONVIF C++ 库
- php 特殊字符¥,php正则怎么替换符号
- 我真是个懒人,。。。
- HyperVolume多目标评价指标概述
- u盘装linux fail load,安装ubuntu18.04报:failed to load ldlinux.c32的问题及解决步骤
- DisplayTag使用指南(二) DisplayTag标签库详解
- Python数据分析之简书七日热门数据分析
- 服务器车牌识别系统,车牌识别系统数据库连接问世
- mobi电子书如何用Mac打开?
- 前端项目运行以后端口不是常见的8080等端口,端口数很大,不在配置的端口跑项目
- 前端每日实战:50# 视频演示如何用纯 CSS 创作一个永动的牛顿摆
- 疾病负担研究(GBD)-如何绘制GBD相关性图
- 再见笨重的ELK!这套轻量级日志收集方案要火!
- python解决直线过网格问题_numpy_matplotlib
热门文章
- 转: centos7 安装 juypter notebook 教程
- Java TCP 编程简介
- studio 3t 在ubuntu中使用_在ubuntu中使用ufw配置防火墙
- java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...
- OpenYurt 入门 - 在树莓派上玩转 OpenYurt
- 云原生时代,应用架构将如何演进?
- IDEA 中 30 秒生成 Spring Cloud Alibaba 工程
- 从零开始入门 K8s | 应用编排与管理
- java发送加密报文_RSA加密---从后台到客户端实现报文加解密
- 变阻感器测量位移的计算机流程图,传感器工作流程图