mysql的主从复制_mysql主从复制原理

mysql的主从复制_mysql主从复制原理1.主从复制的基本原理 slave会从master读取binlog来进行数据同步。主要有以下三个步骤: ①master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(…

MySQL进阶——主从复制

attachments-2020-03-nSwxNjkM5e79698370399.jpg

 

1.主从复制的基本原理

slave会从master读取binlog来进行数据同步。主要有以下三个步骤:

①master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(binary log events)。

②slave将master的binary log events拷贝到中继日志(relay log)。

③slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL的复制是异步且串行化的。

v2-45e6eb9a8cd6849617e55274bd6fc898_720w.jpg

 

2.主从复制的规则

①每个slave只能有一个master。(一对一)

②每个slave只能有一个唯一的服务器ID。

③每个master可以有多个slave。(一对多)

在主从复制过程中,最大的问题就是延时。

 

3.一主一从的常见配置

#1.要求。

MySQL版本最好一致且后台以服务运行。并且保证主机与从机互相ping通。主从配置都在[mysqld]结点下,都是小写。

#2.主机修改my.ini配置文件

①server-id=1,主机服务器id。(必须)

②必须启用二进制文件。

log-bin="E:devSoftmysql-5.7.22-winx64datamysql-bin"

代码100分

配置该项后,重新启动mysql服务,可看到如下内容。

v2-6e7f3fe2702869c5591a33da7f28c4f5_720w.jpg

③启用错误日志。(可选)

log_error =”E:devSoftmysql-5.7.22-winx64datalogerrorloglog_error.log”

④根目录、数据目录。(可选)

代码100分#mysql安装根目录 basedir ="E:devSoftmysql-5.7.22-winx64"   #mysql数据文件所在位置 datadir ="E:devSoftmysql-5.7.22-winx64data"

⑤临时目录。(可选)

tmpdir  ="E:devSoftmysql-5.7.22-winx64"

⑥read-only=0,表示主机读写都可以。

⑦可设置不需要复制的数据库。(可选)

代码100分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的状态。

v2-19db90cdc229112b893405e6d9ff9302_720w.jpg

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;

启动复制功能后,需要查看主从复制配置是否成功。

v2-077f8c6214b6133b9ce88309c45b07a5_720w.jpg

注:只有当Slave_IO_Running:Yes和Slave_SQL_Running:Yes,这两个都为Yes的时候,主从复制配置才成功。

#9.进行测试。

①首先在主机上建立数据库并插入数据。

v2-665fd3357cc93c0c46386bd79cd94343_720w.jpgv2-f28ad22e77ddd2271ff6a8ee2b02a5e6_720w.jpg

②在从机中查看是否有相应数据库。

v2-b1fa5aaca4b06da8d0822418bbf800ec_720w.jpgv2-3d74d18d443b6aab86b50f8bc533aeb2_720w.jpg

通过从机上查看相应数据,可知主从复制配置成功。

#10.停止从服务复制功能。

stop slave;

 

4.总结

#1.主从复制的配置,大部分都在主机上,注意查看相关步骤。

#2.这里将主从机的防火墙都关闭是为了更好的演示,实际生产环境中一般不会出现windows主机和linux从机这种情况,因此不应该关闭防火墙,而是根据具体情况配置防火墙规则。

 

attachments-2020-03-bve1h1635e7969bff1c5b.jpg

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9376.html

(0)
上一篇 2023-02-09 19:00
下一篇 2023-02-09

相关推荐

  • Redis安装目录查看方法

    Redis安装目录查看方法Redis是一款快速高效的键值存储数据库,常用于缓存、消息队列和排行榜等场景。Redis的安装目录在日常开发和运维中非常重要,一些常见的问题如启动错误、数据备份等都涉及到了Redis的目录。因此本文将详细介绍Redis安装目录的查看方法,希望对读者有所帮助。

    2024-05-06
    66
  • HDFS数据存储流程[通俗易懂]

    HDFS数据存储流程[通俗易懂]HDFS即Hadoop Distributed File System, HDFS存储数据的流程如下: 1、client跟NameNode交互1.1、client 发消息给NameNode,NameN

    2023-04-19
    151
  • 大数据hadoop入门教程_大数据 hadoop

    大数据hadoop入门教程_大数据 hadoop1 hadoop-最全最完整的保姆级的java大数据学习资料 大数据技术解决的是什么问题? 大数据技术解决的主要是海量数据的存储和计算。 Hadoop的广义和狭义之分 狭义的Hadoop:指的是一个框

    2023-06-18
    157
  • MySQL 中间件Mycat部署「终于解决」

    MySQL 中间件Mycat部署「终于解决」什么是MyCat*一个彻底开源的,面向企业应用开发的大数据库集群*支持事务、ACID、可以替代MySQL的加强版数据库*一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群*一个…

    2023-03-24
    149
  • win8远程桌面连接 批量管理程序[通俗易懂]

    win8远程桌面连接 批量管理程序[通俗易懂]win8远程桌面连接 批量管理程序远程桌面是微软公司为了便于网络管理员管理维护服务器推出的一项服务。从windows 2000 server版本开始引入,网络管理员时候远程桌面连接器连接到网络任意一…

    2023-02-23
    151
  • Python构建用户界面的秘诀

    Python构建用户界面的秘诀Python作为一种简洁、易读、易于维护且可扩展的编程语言,越来越受到广大开发者的青睐。然而,Python工程师在构建用户界面时常常遇到一些问题。由于Python自带的GUI库功能较为简单,因此有必要探究一些其他的Python工具和库,以便更好地发挥Python的强大优势并实现更复杂的用户界面。

    2023-12-29
    102
  • pycharm安装后打不开的解决方法

    pycharm安装后打不开的解决方法PyCharm是一款专业的Python集成开发环境(IDE),方便而强大,是Python开发者的重要工具之一。但是有些时候,在安装PyCharm后,可能会遇到无法启动的问题,尤其是新手们,很容易被这个问题卡住甚至无从下手。本文将从多个方面为大家介绍PyCharm安装后打不开的解决方法。

    2024-09-18
    19
  • MyBatis-Plus 实现数据库字段更新为 NULL「终于解决」

    MyBatis-Plus 实现数据库字段更新为 NULL「终于解决」feeMapper.update(Wrappers.<FeePO>lambdaUpdate() .eq(FeePO::getId, feeDO.getId()) .set(ObjectUt

    2023-05-02
    151

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注