Linux中MySQL 双主复制(互为主从)配置指南(详细过程)!

news2024/9/25 13:17:56

 

🏡作者主页:点击! 

🐧Linux基础知识(初学):点击!

🐧Linux高级管理防护和群集专栏:点击!

🔐Linux中firewalld防火墙:点击!

⏰️创作时间:2024年7月24日15点48分

🀄️文章质量:95分


目录

前言——

配置基于GTID的复制模式

第一台主服务器配置

主服务器配置

创建具有复制权限的用户

启动从服务

第二台主服务器配置

主服务器配置

创建具有复制权限的用户

启动从服务

测试双主复制配置

第一台主服务器测试

第二台主服务器测试

总结


前言——

在数据驱动的时代,数据库的高可用性和数据一致性是每个企业必须考虑的重要问题。MySQL 双主复制(Master-Master Replication)提供了一种有效的解决方案,通过配置两台服务器互为主从,保证数据的实时同步和高可用性。本文将详细介绍如何配置基于 GTID 的 MySQL 双主复制,并进行测试验证。

配置基于GTID的复制模式

GTID(全局事务标识符)是 MySQL 提供的一种新型复制方式,它简化了主从复制的配置和管理,确保数据的一致性和完整性。在配置 MySQL 双主复制之前,我们需要确保两台主服务器都启用了 GTID 模式。

第一台主服务器配置

主服务器配置

首先,我们需要修改第一台主服务器的配置文件 /etc/my.cnf,添加以下内容:

server-id = 100
log_bin = mysql-bin
gtid_mode = ON
enforce_gtid_consistency = true

这些配置项的作用如下:

  • server-id:设置服务器的唯一标识符。
  • log_bin:启用二进制日志记录。
  • gtid_mode:启用 GTID 模式。
  • enforce_gtid_consistency:强制 GTID 一致性。

修改完配置文件后,重启 MySQL 服务使配置生效:

systemctl restart mysqld

创建具有复制权限的用户

接下来,我们需要创建一个具有复制权限的用户,用于两台服务器之间的同步:

grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234';
flush privileges;
show master status\G;

这些 SQL 命令的作用如下:

  • grant replication slave:授予用户复制权限。
  • flush privileges:刷新权限,使之生效。
  • show master status:查看主服务器的状态。

启动从服务

在创建好用户之后,进入 MySQL 数据库执行以下命令,将另一台主服务器配置为从服务器:

mysql -uroot -pABCabc-123
change master to
master_host="192.168.192.111",
master_user="repluser",
master_password="Abc-1234",
master_auto_position=1;

启动从服务:

start slave;

第二台主服务器配置

主服务器配置

在第二台主服务器上,同样需要修改配置文件 /etc/my.cnf,添加以下内容:

server-id = 101
log_bin = mysql-bin
gtid_mode = ON
enforce_gtid_consistency = true

重启 MySQL 服务:

systemctl restart mysqld

创建具有复制权限的用户

创建具有复制权限的用户:

grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234';
flush privileges;
show master status\G;

启动从服务

进入 MySQL 数据库执行以下命令,将第一台主服务器配置为从服务器:

mysql -uroot -pABCabc-123
change master to
master_host="192.168.192.100",
master_user="repluser",
master_password="Abc-1234",
master_auto_position=1;

启动从服务:

start slave;

测试双主复制配置

第一台主服务器测试

在第一台主服务器上,向 hello 数据库的 test 表插入数据,并查看数据同步情况:

mysql> insert into hello.test values(2222);
Query OK, 1 row affected (0.01 sec)

mysql> select * from hello.test;
+--------+
| num    |
+--------+
| 111111 |
|   2222 |
+--------+
2 rows in set (0.00 sec)

mysql> select * from hello.test;
+---------+
| num     |
+---------+
|  111111 |
|    2222 |
| 3333333 |
+---------+
3 rows in set (0.01 sec)

第二台主服务器测试

在第二台主服务器上,查看刚刚插入的数据,并插入新的数据:

mysql> select * from hello.test;
+--------+
| num    |
+--------+
| 111111 |
|   2222 |
+--------+
2 rows in set (0.00 sec)

mysql> insert into hello.test values(3333333);
Query OK, 1 row affected (0.02 sec)

mysql> select * from hello.test;
+---------+
| num     |
+---------+
|  111111 |
|    2222 |
| 3333333 |
+---------+
3 rows in set (0.00 sec)

总结

通过以上配置和测试,我们成功地实现了 MySQL 双主复制。此配置不仅提高了数据库的可用性,还确保了数据的一致性。在实际生产环境中,这种配置可以极大地减少数据丢失的风险,提升系统的容灾能力。希望本文对您在 MySQL 双主复制的配置上有所帮助。如果有任何问题或建议,欢迎留言讨论。

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

stats 监控 macOS 系统

Stats 监控 macOS 系统 CPU 利用率GPU 利用率内存使用情况磁盘利用率网络使用情况电池电量 brew install stats参考 stats github

[Unity] ShaderGraph实现DeBuff污染 溶解叠加效果

本篇是在之前的基础上,继续做的功能衍生。 [Unity] ShaderGraph实现Sprite消散及受击变色 完整连连看如下所示:

分布式事务(典型的分布式事务场景+CAP+解决方案)

分布式事务与分布式锁的区别: 分布式锁解决的是分布式资源抢占的问题;分布式事务和本地事务是解决流程化提交问题。 SQL中的4个事务隔离级别:(1)读未提交(2)读已提交(3&#xff09…

【React】详解样式控制:从基础到进阶应用的全面指南

文章目录 一、内联样式1. 什么是内联样式?2. 内联样式的定义3. 基本示例4. 动态内联样式 二、CSS模块1. 什么是CSS模块?2. CSS模块的定义3. 基本示例4. 动态应用样式 三、CSS-in-JS1. 什么是CSS-in-JS?2. styled-components的定义3. 基本示例…

基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作)

这是项目的初始页面 接下来我先写下我的初始项目搭建 技术支持:JAVA、JSP 服务器:TOMCAT 7.0.86 编程软件:IntelliJ IDEA 2021.1.3 x64 首先我们打开页面,准备搭建项目的初始准备 1.New Project 2.随后点击Next,勾…

【数据结构】顺序表(杨辉三角、简单的洗牌算法)

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔 💪💪💪 谢谢你这么帅…

【机器学习】GPT LoRA:大模型微调的艺术与效率

文章目录 往期热门专栏回顾1、前言介绍 1.1、文生图效果 2、LoRA的工作原理3、LoRA的应用场景4、LoRA的优势5、LoRA的挑战6、LoRA的实现7、未来展望 1、前言介绍 在深度学习和自然语言处理领域,大规模预训练模型(如GPT-3、BERT等)已经展示了…

ansible基础讲解和加密文件讲解

ansible最重要的三个文件 /etc/ansible/ansible.cfg #####ansible的配置文件 /etc/ansible/host ##清单文件inventory ansible-navigator.yml ####以yml结尾的文件可以理解为conf结尾的文件,是配置文件,用于设置剧本playbook playbook讲解 以.yml结…

【Android】Activity与Fragment的数据传递

上一篇文章学到了碎片的创建与生命周期,接下来学习碎片的常用操作,其中会用到上一篇文章的三个碎片,就做一个简单的说明吧:LeftFragment(包含一个按钮)、RightFragment4(以粉色为背景的文本&…

优化医疗数据管理:Kettle ETL 数据采集方案详解

在现代医疗保健领域,数据的准确性、完整性和及时性对于提高医疗服务质量和患者护理至关重要。为了有效管理和利用医疗数据,Kettle ETL(Extract, Transform, Load)数据采集方案成为了许多医疗机构的首选工具之一。本文将深入探讨Ke…

【Gitlab】SSH配置和克隆仓库

生成SSH Key ssh-keygen -t rsa -b 4096 私钥文件: id_rsa 公钥文件:id_rsa.pub 复制生成的ssh公钥到此处 克隆仓库 git clone repo-address 需要进行推送和同步来更新本地和服务器的文件 推送更新内容 git push <remote><branch> 拉取更新内容 git pull &…

MySQL数据库的DQL的高级数据查询语句

目录 非等值联查&#xff1a; 等值联查&#xff1a; eg&#xff1a;5张表联查 连接查询——left/right/inner join on eg: 连接查询——union Eg&#xff1a; 不去重的并集——union all 子查询&#xff08;内部查询&#xff09; 1、where型子查询 2、from型子查询&a…

Servlet2-HTTP协议、HttpServletRequest类、HttpServletResponse类

目录 HTTP协议 什么是HTTP协议 HTTP协议的特点 请求的HTTP协议格式 GET请求 POST请求 常用的请求头说明 哪些是GET请求&#xff0c;哪些是POST请求 响应的HTTP协议格式 常见的响应码说明 MIME类型说明 HttpServletRequest类 作用 常用方法 如何获取请求参数 po…

Linux:基础

一、安装 二、 一些组件 2.1 git管理 集中式版本控制系统:版本库是集中存放在中央服务器的,需要时要先从中央服务器取得最新的版本进行修改,修改后再推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作,网速慢的话影响太大。 分布式版本控制系统:分布…

MySQL SQL 编程练习

目录 创建表并插入数据 查看表结构 创建触发器 创建INSERT 触发器 创建DELETE 触发器 创建更新触发器 创建存储过程 创建提取emp_new表所有员工姓名和工资的存储过程s1 创建存储过程s2&#xff0c;实现输入员工姓名后返回员工的年龄 创建一个存储过程s3&#xff0c;有2个参数&…

Apache ShardingSphere Proxy5.5.0实现MySQL分库分表与读写分离

1. 前提准备 1.1 主机IP:192.168.186.77 version: 3.8services:mysql-master:image: mysql:latestcontainer_name: mysql-masterenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_USER: masterMYSQL_PASSWORD: 123456MYSQL_DATABASE: db1 ports:- "3306:3306&quo…

搭建NFS、web、dns服务器

目录 1、搭建一个nfs服务器&#xff0c;客户端可以从该服务器的/share目录上传并下载文件 服务端配置&#xff1a; 客户端测试&#xff1a; 2、搭建一个Web服务器&#xff0c;客户端通过www.haha.com访问该网站时能够看到内容:this is haha 服务端配置&#xff1a; 客户端…

UE5+OpenCV配置(Windows11系统)

一、概述 因为需要在UE5中使用OpenCV这些工具进行配置&#xff0c;所以在网络上参考借鉴一些资料进行配置。查询到不少的资料&#xff0c;最后将其配置成功。在这里顺便记录一下自己的配置成功的过程。 二、具体过程 &#xff08;一&#xff09;版本 使用Windows11系统、UE5.…

vue3前端开发-小兔鲜项目-路由拦截器增加token的携带

vue3前端开发-小兔鲜项目-路由拦截器增加token的携带&#xff01;实际开发中&#xff0c;很多业务接口的请求&#xff0c;都要求必须是登录状态&#xff01;为此&#xff0c;这个token信息就会频繁的被加入到了请求头部信息中。request请求头内既然需要频繁的携带这个token.我们…

百易云资产管理运营系统 comfileup.php 文件上传致RCE漏洞复现(XVE-2024-18154)

0x01 产品简介 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能,帮助企业优化资产配置,提升运营效率。 0x02 漏…