mysql双主复制模式_MySQL的主从复制+双主模式

2023-10-16 05:40

本文主要是介绍mysql双主复制模式_MySQL的主从复制+双主模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MySQL的主从复制

部署环境:

MySQL master 192.168.40.21

MySQL slave  192.168.40.22

思路:

当主MySQL上进行数据上的操作或者变化时,主MySQL上的二进制日志文件(binary log)会随之产生变化,这时从MySQL上开启I/O线程和sql线程;

I/O线程是对主MySQL上二进制日志文件进行读取,读取到从MySQL的中继日志文件上(relay log)

sql线程是读取和执行中继日志文件上数据,整过程就是实现主从复制的过程,实现后的效果是当主MySQL有变动,从的也会随之同步变动,也可称为主备模式

搭建主从:

搭建前提需要注意两台服务上的时间问题,时间上需要同步一致。如果不一致,可以一下操作:

主MySQL上安装NTP

[[email protected] ~]# yum -y install ntp

[[email protected] ~]# vim /etc/ntp.conf

#手动添加

22  server 127.127.1.0

23  fudge 127.127.1.0 startum 8

重启NTP

[[email protected] ~]#chkconf ntpd on   #开机启动

在从MySQL上搭建时间同步,安装ntpdate

[[email protected] ~]# yum -y install ntpdate

[[email protected] ~]# ntpdate 192.168.40.21

配置主MySQL服务器

[[email protected] ~]# cat /etc/my.cnf

#手动添加在MySQLD下

log-bin=mysql-bin

log-slave-updates=true

server-id =11

#进入MySQL里,给从服务权限

mysql> grant replication slave on *.*to‘myslave‘@‘192.168.40.%‘identified by ‘123123‘;

mysql> flush privileges;       #刷新授权表

mysql> show master status;   #查看当前二进制文件

b1b8a38f51311b0aff65d64b7abd9422.png

配置从MySQL服务器

[[email protected] ~]# vim /etc/my.cnf

relay-log=relay-log-bin

relay-log-index=slave-relay-bin.index

server-id =12  #id不能与主服务一样

重新启动MySQL并且进入

mysql> change master to

mysql> master_host=‘192.168.40.21‘,master_user=‘myslave‘,master_password=‘123123‘,master_log_file=‘mysql-bin.000036‘,master_log_pos=267;

mysql> start slave

mysql> show slave status\G;

0b512b839597a86a73ecea3c3dbb7502.png

图片上前两行yes代表IO线程和SQL线程都没问题,现在来测试下!

在主MySQL上创建一个www库

2aeafe3391db4e9bfb2e66437e6a08b2.png

现在查看从MySQL的库是否有变化

2fabb41ada507c5be029f82c84a13402.png

可以看出从MySQL已经实时更新数据了,出现了www库!

MySQL双主模式

搭建环境以及思路:

在上面的实验环境的基础上,反向搭建主从,也就是说在上一个实验环境的基础上在从上面做一个主,在主上做一个从,即一台MySQL是另一台的主也是从 ,然后再安装keepalived进行高可用和故障切换

搭建过程:

在上一个案例的从上搭建一个主

其实,配置过程和之前案一样,只不过是方向配置,过程就不写这么详细了

修改配置文件/etc/my.cnf

#手动添加

log-bin=mysql-bin

log-slave-updates=true

server =20

重启MySQL并进入给从服务权限

mysql> grant replication slave on *.*to‘myslave‘@‘192.168.40.%‘identified by‘123123‘;

mysql> flush privileges;

mysql> show master status;

923cbdcb9879b0b977b58f95a580c624.png

在上个案例主上配置从

修改配置文件/etc/my.cnf

#手动添加

relay-log=relay-log-bin

relay-log-index=slave-bin.index

server-id =22

重启服务并且登录

mysql> change master to

mysql> master_host=‘192.168.40.22‘,master_user=‘myslave‘,master_password=‘123123‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=501;

mysql> start slave

mysql> show slave status\G

c7c5abf1e8ab6b1964c675e7b47328e9.png

双主配置成功,现在需要编写一个健康MySQL的脚本和安装一个keepalived高可用软件,因为之前做集群的时候已经安装了,所以就不在安装keepalived

脚本:

#!/bin/bash

#by:Dfengshuo

#检测端口脚本

#检测mysql 3306端口是否开启,如果没有开启尝试开启

jc=`ps -C mysqld -no-header|wc -l`

if [ $jc -eq 0 ];then

/etc/init.d/mysqld restart

sleep 2

#如果mysql尝试开启失败,那么就关闭keepalived服务,进行vip飘移

jc2=`ps -C haproxy -no-header |wc -l`

if [ $jc -eq 0 ];then

/etc/init.d/keepalived stop

fi

fi

5b6b2608c0a45f385a2d4908e81eee52.png

[[email protected] ~]# scp mysql.sh 192.168.40.22:/root    #把脚本发给192.168.40.22 root下

修改keepalived的配置文件

351c6d30f88ea7f87b331bb05d6d5b7f.png

修改192.168.40.22上的keepalived配置文件,因刚刚把脚本发在root下了,所以不用在写脚本了

0dc5ef9ea82b4570d418ddbc08fe0674.png

配置完之后重启keepalived服务查看vip是否存在

87dfd4cc2b6cf1b858df699c860e73cc.png

9f6a508826709f53d1e2e86f8f909c23.png

现在测试keepalived宕机后,vip是否飘移

6289eefd318566c30f4edb8814e67a74.png

9a51f3ec74d496c6bf1f63a690cfd2f5.png

由此可见,vip已经飘移到40.22上了,测试成功!!!

=====文中如有错误,欢迎指出!=====

原文:https://www.cnblogs.com/Dfengshuo/p/9451027.html

这篇关于mysql双主复制模式_MySQL的主从复制+双主模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219427

相关文章

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

PostgreSQL如何用psql运行SQL文件

《PostgreSQL如何用psql运行SQL文件》文章介绍了两种运行预写好的SQL文件的方式:首先连接数据库后执行,或者直接通过psql命令执行,需要注意的是,文件路径在Linux系统中应使用斜杠/... 目录PostgreSQ编程L用psql运行SQL文件方式一方式二总结PostgreSQL用psql运

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示