Mysql双主配置的详细步骤
亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《Mysql双主配置的详细步骤》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下配置、MySQL双主,希望所有认真读完的童鞋们,都有实质性的提高。
安装mysql步骤略过
一、mysql配置文件
(1)节点A配置
# 设置server-id,两节点必须不一样 server-id = 100 # 开启bin_log,模式为ROW,允许最大日志为1G log_bin = mysql-bin binlog_format = ROW max_binlog_size = 1024M # mysql5.7的版本不需要配置log-slave-updates=1 # log-slave-updates = 1 # 实现数据库宕机恢复后,自动同步缺少的数据 relay_log = mysql-relay-bin # 设置自增ID初始值为2,每次自增量为2。即都是偶数2,4,6,8,... auto_increment_offset = 2 auto_increment_increment = 2 # 开启gtid gtid_mode = ON enforce_gtid_consistency = 1 # 忽略不需要同步的schema replicate-ignore-db = mysql replicate-ignore-db = information_schema replicate-ignore-db = performance_schema replicate-ignore-db = sys
(2)节点B配置
只列出了与节点A不同的配置
# 设置server-id,两节点必须不一样 server-id = 200 # 设置自增ID初始值为1,每次自增量为2。即都是奇数1,3,5,7,... auto_increment_offset = 1 auto_increment_increment = 2
二、配置节点A为节点B的master(主从模式)
节点A为master,节点B为slave。
(1)登录节点A,创建slave(节点B)使用的账号。
# 在节点A上创建账号repl_user,允许从任意IP访问,密码为slave@100, grant replication slave on *.* to 'repl_user'@'%' identified by 'slave@100'; flush privileges;
(2)查看节点A的master信息
如下图所属,节点A的bin_log日志为mysql-bin.000001,位置是154
# 清空master信息。初次配置可以使用,若已运行了同步,切记不要使用! reset master; # 查看master信息 show master status; +------------------+----------+--------------+------------------+---------------------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+---------------------------------------------+ | mysql-bin.000001 | 154 | | | c2cf218e-2317-11ec-a36f-5cf9dd4fd6a8:1-5 | +------------------+----------+--------------+------------------+---------------------------------------------+
(3)登录节点B,设置节点B的master为节点A
# 停止节点B上的slave stop slave; # 将节点B的master设为节点A,以下的配置信息均表示节点A # MASTER_LOG_FILE和MASTER_LOG_POS,是在第(2)步中查看节点A的master信息 CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=3307, MASTER_USER='repl_user', MASTER_PASSWORD='slave@100', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; # 开启节点B上的slave start slave;
(4)确认节点B的slave是否运行成功。当返回的结果中,Slave_IO_Running和Slave_SQL_Running都为YES时,表示成功。如果为NO或Connecting时,请在mysql的data目录中查看.err结尾的日志文件,找出[ERROR]级别的日志查看。初次配置时,一般都是my.ini配置问题,或同步账号创建问题导致的。
# 在节点B中查看slave状态 show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 127.0.0.1 Master_User: repl_user Master_Port: 3307 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 2207 Relay_Log_File: mysql-relay-bin.000002 Relay_Log_Pos: 1143 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes ......
(5)若slave配置出现异常,可使用以下语句重置
reset slave all;
三、完成双主配置
此时,已成功配置了节点A与节点B的主从模式,即节点A是节点B的master。接下来重复步骤三的操作,但是节点A、B的操作要颠倒过来,即在节点B上创建同步账号,查看master信息,在节点A上设置节点B为master。配置完成后,同样查看节点A的slave状态,Slave_IO_Running和Slave_SQL_Running是否都为YES。
四、测试
在节点A添加、删除schema或表或数据,在节点B中查看是否有正确同步。
测试自增主键,分别在节点A、B上添加自增主键的数据,与配置文件是否对应。一个为奇数,一个为偶数。增加或删除数据,主键是否会出现冲突的情况。
五、控制同步的库或表
通过修改my.ini实现
(1)在master端控制
binlog-do-db binlog日志记录的数据库(多数据库用,隔开)
binlog-ignore-db binlog日志中忽略数据库(多数据库用,隔开)
只有在binlog中记录的表,才能同步给从库
# binlog中记录这两个表 binlog-do-db=db_1,db_2 # binlog中不记录这两个表 binlog-ignore-db=db_3,db_4
(2)在slave端控制
replicate-do-db 设定需要复制的数据库
replicate-ignore-db 设定需要忽略的复制数据库
replicate-do-table 设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表
replicate-wild-do-table 同replication-do-table功能一样,可以通配符
replicate-wild-ignore-table 同replication-ignore-table功能一样,可以加通配符
注:忽略的配置里,在从库的relaylog中仍有信息,只是没有执行同步。
# 执行同步的库 replicate-do-db=db_1 replicate-do-db=db_2 # 忽略同步的库 replicate-ignore-db=db_3 # 执行同步的表 replicate-do-table=db_1.table_a replicate-do-table=db_2.table_b # 忽略同步的表 replicate-ignore-table=db_2.table_c # 只复制哪个库的哪个表 replicate-wild-do-table=db_4.% # 忽略哪个库的哪个表 replicate-wild-ignore-table=mysql.%
第五部分引用自CSDN博主「Mr. Sun_」的原创文章
原文链接:https://www.jb51.net/article/252656.htm
六、一个账号多个IP
当一台mysql作为主节点,N台作为从节点时,如果每个从节点都添加一个账号会非常繁琐。此时可以在主节点中,创建一个账号,给此账号设置多个IP,从而减少添加的账号个数。
具体做法是,将创建账号的语句执行多次,每次的IP不同即可。
# 创建一个账号名,为此账号设置多个ip grant replication slave on *.* to 'repl_user'@'192.168.5.10' identified by 'slave@100'; grant replication slave on *.* to 'repl_user'@'192.168.5.20' identified by 'slave@100'; FLUSH PRIVILEGES
第六部分引用自CSDN博主「rucypli」的回答
总结
本篇关于《Mysql双主配置的详细步骤》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

- 上一篇
- Windows10下mysql 5.7.21 Installer版安装图文教程

- 下一篇
- 如何基于Session实现短信登录功能
-
- 受伤的冬瓜
- 太给力了,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢大佬分享文章内容!
- 2023-03-23 03:39:07
-
- 善良的画板
- 这篇博文真是及时雨啊,很详细,很好,mark,关注老哥了!希望老哥能多写数据库相关的文章。
- 2023-01-19 03:06:03
-
- 数据库 · MySQL | 2小时前 | 索引 数据类型 约束 主键 CREATETABLE
- MySQL建表命令详解:CREATETABLE示例及解释
- 206浏览 收藏
-
- 数据库 · MySQL | 17小时前 | 数据类型 扩展性 存储引擎 CREATETABLE 约束条件
- MySQL建表攻略:详解数据表创建方法
- 265浏览 收藏
-
- 数据库 · MySQL | 21小时前 | mysql 字符集 中文乱码 utf8mb4 utf8mb4_unicode_ci
- MySQL中文乱码解决方案与字符集修改命令大全
- 339浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 笔灵AI生成答辩PPT
- 探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
- 23次使用
-
- 知网AIGC检测服务系统
- 知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
- 37次使用
-
- AIGC检测-Aibiye
- AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
- 37次使用
-
- 易笔AI论文
- 易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
- 47次使用
-
- 笔启AI论文写作平台
- 笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
- 40次使用
-
- 总结Golang四种不同的参数配置方式
- 2023-01-07 477浏览
-
- Go语言简介和环境配置
- 2023-01-07 109浏览
-
- Go微服务项目配置文件的定义和读取示例详解
- 2023-01-08 298浏览
-
- Goland的设置与配置全过程
- 2023-02-25 192浏览
-
- zap接收gin框架默认的日志并配置日志归档示例
- 2023-01-07 335浏览