mysql 搭建主从复制,一主一从

news/2023/6/8 6:45:46

MySQL主从复制原理

复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。


从上层来看,复制分成三步:

  • Master 主库在事务提交时,会把数据变更作为时间 Events 记录在二进制日志文件 Binlog中。
  • 主库推送二进制日志文件 Binlog 中的日志事件到从库的中继日志 Relay Log 。
  • slave重做中继日志中的事件,将改变反映它自己的数据。


MySQL 复制的优点:

  • 主库出现问题,可以快速切换到从库提供服务。
  • 可以在从库上执行查询操作,从主库中更新,实现读写分离,降低主库的访问压力。
  • 可以在从库中执行备份,以避免备份期间影响主库的服务。
     

主机ip 172.16.208.211
从机ip 172.16.208.212

1 修改主机mysql配置文件 vi /etc/my.cnf
   添加以下配置 

[mysqld]
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
#设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=blog
#设置logbin格式
binlog_format=STATEMENT

2 修改从机mysql配置文件 vi /etc/my.cnf
   添加以下配置

[mysqld]
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

3 重启mysql服务,主机,从机都要重启
   systemctl restart mysqld

配置主机

# 创建同步数据的账户,并且进行授权操作
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'ProphetClouds.com2017';# 刷新权限
flush privileges;# 查询master的状态,记录下File和Position的值,执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
show master status;

5 配置从机

# 指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。
CHANGE MASTER TO MASTER_HOST='172.16.208.211',
MASTER_USER='slave',
MASTER_PASSWORD='ProphetClouds.com2017',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=982;# 启动同步
START SLAVE;# 停止同步
STOP SLAVE;# 查看同步状态,出现下面的截图,就成功了
SHOW SLAVE STATUS;


 

6 开始测试,注意上面的步骤都完成后,才开始创建库,创建表,增删改查等,可以发现已经可以实现同步了

注意:1 如果已经有数据库,并有表和表记录的话,自行baidu解决,后期我可能也会研究研究
         2 不要在从机上做增删改等操作,这里不是 双机热备,操作主机就行了


如果操作失败,可能是mysql的server_uuid相同导致,以下操作在从机上操作

参考博文 https://blog.csdn.net/dsl59741/article/details/107361800
1 登陆到mysql客户端,先停止复制

# 停止同步
STOP SLAVE;

2 停止 从库的Mysql服务,删除掉auto.cnf文件,再开启从库Mysql服务

[root@localhost ~]# systemctl stop mysqld                 #关闭mysql[root@localhost ~]# rm -rf /var/lib/mysql/auto.cnf        #删除从库auto.cnf文件[root@localhost ~]# systemctl start mysqld                #启动从库mysqld服务

3 再重新运行上面的步骤4和步骤5


https://dhexx.cn/news/show-17528.html

相关文章

listview android:cacheColorHint,android:listSelector属性作用(转)

ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,原因是,滚动时,列表里面的view重绘时,用的依旧是系…

java获取操作系统信息

Java代码 import java.util.Properties; Properties propsSystem.getProperties(); //获得系统属性集 String osName props.getProperty("os.name"); //操作系统名称 String osArch props.getProperty("os.arch"); //操作系统构架 String osVersi…

MyCat-web 可视化运维管理和监控平台

MyCat-web简介 Mycat-web 是 Mycat 可视化运维的管理和监控平台,弥补了 Mycat 在监控上的空白。 帮 Mycat 分担统计任务和配置管理任务。 Mycat-web 引入了 ZooKeeper 作为配置中心,可以管理多个节 点。 Mycat-web 主要管理和监控 Mycat 的流量、连接、…

mysql 搭建主从复制,双主双从

双主双从 架构 一个主机 Master1 用于处理所有写请求,它的从机 Slave1 和另一台主机 Master2 还有它的从 机 Slave2 负责所有读请求。当 Master1 主机宕机后,Master2 主机负责写请求,Master1 、 Master2 互为备机。架构图如下: 其实和 一主…

云计算之路-阿里云上:从ASP.NET线程角度对“黑色30秒”问题的全新分析

在这篇博文中,我们抛开对阿里云的怀疑,完全从ASP.NET的角度进行分析,看能不能找到针对问题现象的更合理的解释。 “黑色30秒”问题现象的主要特征是:排队的请求(Requests Queued)突增,到达HTTP.…

mycat 分片规则-取模分片 mod-long

为方便测试,本实例在以下案例中测试https://blog.csdn.net/qq_41712271/article/details/114984855?spm1001.2014.3001.5501 原理 取余分片方式:分片键(一个列)与节点数量进行取余,得到余数,将数据写入对应…

微信公众帐号开发之一(java)

闲来没事,就记录一下微信公众平台的开发吧~ 其实微信公众平台开发没有想象中的那么困难,因为注册了微信公众平台帐号登录之后在开发者模式里有详细的文档,个人感觉介绍还是比较详细的。 微信公众平台订阅号和服务号的区别网上已经有N多的介绍…

mycat 分片规则-枚举分片-hash-int

为方便测试,本实例在以下案例中测试https://blog.csdn.net/qq_41712271/article/details/114984855?spm1001.2014.3001.5501 通过在配置文件中配置可能的枚举值, 指定数据分布到不同数据节点上, 本规则适用于按照省份或状态拆分数据等业务 , 配置如下: 1 schema…

mycat 分片规则-范围求模算法-auto-sharding-rang-mod

为方便测试,本实例在以下案例中测试https://blog.csdn.net/qq_41712271/article/details/114984855?spm1001.2014.3001.5501 该算法为先进行范围分片, 计算出分片组 , 再进行组内求模。 优点: 综合了范围分片和求模分片的优点。 分片组内使用求模可以…

input 类型总结

在表单中input是拥有类型最多的元素,在这总结一下。 typetext 输入类型是text,这是我们见的最多也是使用最多的,比如登陆输入用户名,注册输入电话号码,电子邮件,家庭住址等等。当然这也是Input的默认类型。…