前言:本章主要讲解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主从复制 火墙_MySQL高级知识(十五)——主从复制相关推荐

  1. MySQL必知必会——第十五章联结表

    联结表 本章将介绍什么是联结,为什么要使用联结,如何编写使用联结的SELECT语句. 联结 SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表. 在能够有效地使用联结前,必须了解关系 ...

  2. MySQL高级知识(五)——索引分析

    前言:前面已经学习了explain(执行计划)的相关知识,这里利用explain对索引进行优化分析. 0.准备 首先创建三张表:tb_emp(职工表).tb_dept(部门表)和tb_desc(描述表 ...

  3. mysql调用java函数_mysql概要(十五)存储过程(2)(java调用函数和存储过程)

    使用存储过程的目的: 即将数据的函数处理放在数据库,这样主要是为了,多语言跨平台的使用(java,.net,php),不用重复的函数代码,直接调用存储过程. (对于使用存储过程还是代码来处理数据的效率 ...

  4. mysql罏在十三_MySQL高级知识(十三)——表锁

    前言:锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算机资源(如CPU.RAM.I/O等)的争用外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...

  5. mysql注释符号_MySQL基础知识(2021最新版教程)

    一.MySQL简介 MySQL是一种开放源代码的关系型数据库管理系统,使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. MySQL是开放源代码的,因此任何人都可以在General ...

  6. mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID

    在日常运维中,GTID带来的最方便的作用就是搭建和维护主从复制.GTID的主从模式代替了MySQL早期版本中利用二进制日志文件的名称和日志位置的做法,使用GTID使操作和维护都变得更加简洁和可高. 1 ...

  7. mysql里面灰色_Mysql 高级

    1 MySQL 的架构介绍 1.1 sql_mode sql_mode 是一个容易忽视的变量,默认情况下为空,可以忍耐一些非法操作,在生产环境中,必须将其设置为严格模式,在开发测试环境中配该变量也是很 ...

  8. mysql revoke 用法_mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法 MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执行查 ...

  9. mysql索引别名_Mysql索引知识详谈

    1. 索引的重要性 索引之于数据表,相当于检字表于汉语字典,设想让你在没有检字表的情况下从字典中找出一个"武"字,你会多么无助,如果用检字表,我们一眼就能找出它在第509页 数据库 ...

最新文章

  1. 一文览尽LiDAR点云目标检测方法
  2. java的total_Java LabelResourcePool.totalNum方法代码示例
  3. Visual Studio插件
  4. php5时区,[摘]PHP5.1时区设置
  5. arduino 程序的机制
  6. MSN再次出现大面积瘫痪 微软称尚未查明原因
  7. 前瞻设计:创新型战略推动可持续变革(全彩)
  8. 服务器端提交form
  9. python爬取歌词_利用Python网络爬虫抓取网易云歌词
  10. 诺基亚奢华手机:高配置+8.78万元
  11. python实现非标准正态分布下概率密度有关计算
  12. php excel下载打不开了,php下载excel无法打开的解决方法_PHP教程
  13. TCP和UDP的区别有哪些?
  14. 设置 SSH 通过密钥登录
  15. 方案设计阶段目标成本形成过程
  16. mysql查看表空间剩余大小_查询表空间的总大小,剩余表空间,已用空间,表占用大小,某天占用的大小...
  17. html 下拉框 设置默认值,如何设置HTML select下拉框的默认值?
  18. windbg - 调试栈溢出及一个崩溃示例
  19. Linux文本编辑器---vim详解
  20. 解决The connected J-Link is defective,Proper operation cannot be guaranteed

热门文章

  1. 这是一则计算机视觉顶级会议CVPR与腾讯的爆闻,啥?
  2. 云评测 | 开发者最有用的开源云监控工具有哪些呢? 这7款神器总有一款适合你!...
  3. 统计了50万人的身高数据才发现:大家都爱虚报身高
  4. 禁止访问 共享计算机,win7如何禁止局域网用户访问电脑
  5. 有没有五金产品展开计算机软件,花样算法猫腻不断 全屋定制这本账真心不好算...
  6. Sentinel 基于Nacos规则持久化-推模式
  7. 企业实战_02_MyCat基本元素
  8. 系统架构设计师 - 软件架构设计 - 特定领域软件架构DSSA(Domain Speciffic Softwore Architecture)
  9. JS键盘字母相应的keyCode值
  10. Android Studio 创建第一个Android工程项目