码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker部署MySQL双主双从,主主互备


     1. 双主双从 主主互备

    MySQL的双主双从(主主互备)架构是一种高可用性和负载均衡的解决方案,它由两台主数据库服务器和两台从数据库服务器组成。每台主服务器同时充当另一台主服务器的从服务器,形成一个互为主从的关系。这种架构可以提供以下优势:

    • 高可用性:任何一台主服务器故障,另一台主服务器可以立即接管其工作,确保系统持续运行。
    • 负载均衡:读操作可以分散到多台从服务器上,减轻主服务器的负担,提高整体性能。
    • 数据冗余:数据在多台服务器上备份,降低了数据丢失的风险。
    • 灵活扩展:可以根据需求增加从服务器,进一步提升系统的处理能力。

    在配置MySQL双主双从架构时,需要考虑以下几个关键步骤:

    • 环境准备:确保所有服务器上安装相同版本的MySQL,并关闭防火墙以允许服务器之间的通信。

    • 配置主服务器:在每台主服务器上配置my.cnf文件,设置唯一的server-id,启用二进制日志(log-bin),并设置binlog-format为mixed或ROW以支持事务完整性。同时,需要配置自增字段的起始值和递增量,以避免主键冲突。

    • 配置从服务器:在从服务器上配置my.cnf文件,设置唯一的server-id,并启用中继日志(relay-log)。

    • 创建复制用户并授权:在每台主服务器上创建用于复制的用户,并授权该用户在所有数据库上进行复制操作。

    • 配置主从复制:在每台从服务器上使用CHANGE MASTER TO命令配置主服务器的信息,包括主服务器的地址、复制用户的用户名和密码、二进制日志文件名和位置。

    • 启动复制并监控状态:在从服务器上启动复制过程,并定期使用SHOW SLAVE STATUS\G命令监控复制状态,确保复制正常进行。

    • 处理自增ID冲突:在双主架构中,需要特别注意自增ID的冲突问题。可以通过设置不同的初始值和增长步长来避免冲突,或者使用全局事务ID(GTID)来简化冲突处理。

    通过搭建一个稳定的MySQL双主双从架构,以实现高可用性和负载均衡。在实际部署时,还需要根据具体的业务需求和环境进行调整和优化。

    2. 准备工作

    编号

    角色

    IP

    端口

    1

    masterMysqlOne

    192.168.0.15

    3507

    2

    SlaveMysql1

    192.168.0.15

    3508

    3

    masterMysqlTwo 192.168.0.15

    3509

    4

    SlaveMysql2

    192.168.0.15

    3505

    实际开发中,双主机、双从机配置完成一定要重启 mysql 服务,检查端口号是否开启 或关闭防火墙。

    参考文章

    Docker安装Mysql数据库-CSDN博客文章浏览阅读761次,点赞17次,收藏21次。Docker 镜像是用于创建容器的蓝图,包含了运行应用的所有依赖,如代码、运行时、库和配置文件。它们是轻量级、可移植的,确保应用在任何环境中都能一致运行。每个镜像由多个层组成,每层对应Dockerfile中的一个指令,这种分层帮助实现资源共享,优化存储和传输效率。Docker 镜像可以通过docker build创建,也可以从公共或私有仓库如Docker Hub拉取。使用docker pull命令获取镜像,Docker部署mysql数据库,主从复制,双主双从,主主互备,实现数据同步复制https://blog.csdn.net/ddf128/article/details/143084252

    Docker部署MySQL主从复制-CSDN博客文章浏览阅读1.4k次,点赞40次,收藏30次。Docker 镜像是用于创建容器的蓝图,包含了运行应用的所有依赖,如代码、运行时、库和配置文件。它们是轻量级、可移植的,确保应用在任何环境中都能一致运行。每个镜像由多个层组成,每层对应Dockerfile中的一个指令,这种分层帮助实现资源共享,优化存储和传输效率。Docker 镜像可以通过docker build创建,也可以从公共或私有仓库如Docker Hub拉取。使用docker pull命令获取镜像,Docker部署mysql数据库,主从复制,双主双从,主主互备,实现数据同步复制https://blog.csdn.net/ddf128/article/details/143187363

    3. 双主配置

    3.1 部署masterMysqlOne

    masterMysqlOne容器

    docker run -p 3507:3306 --name masterMysqlOne -v /mysqldata/mysql-master1/log:/var/log/mysql -v /mysqldata/mysql-master1/data:/var/lib/mysql -v /mysqldata/mysql-master1/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7

    修改配置文件

    vi /mysqldata/mysql-master1/conf/my.cnf

    配置内容

    1. [mysqld]
    2. ## 设置server_id,同一局域网中需要唯一
    3. server_id=1
    4. ## 指定不需要同步的数据库名称
    5. binlog-ignore-db=mysql
    6. binlog-ignore-db=information_schema
    7. #设置需要复制的数据库
    8. binlog-do-db=users
    9. ## 开启二进制日志功能
    10. log-bin=mall-mysql-bin
    11. #设置logbin格式
    12. binlog_format=STATEMENT
    13. ## 设置二进制日志使用内存大小(事务)
    14. binlog_cache_size=1M
    15. ## 设置使用的二进制日志格式(mixed,statement,row)
    16. binlog_format=mixed
    17. # 在作为从数据库的时候,有写入
  • 相关阅读:
    WPF数据绑定(Binding的源与路径)(二)
    Unity版本使用情况统计(更新至2022年10月)
    一些负载均衡算法
    DB2 设置explain
    如何知道是否有人正在进行网络攻击
    Springboot如何整合Kafka
    R语言——条形图数据可视化的多种方式
    【实习】解决请求参数过长问题
    RabbitMQ消息队列讲解(涵盖生产者消费者以及Springboot整合)
    小米智能电视投屏方法
  • 原文地址:https://blog.csdn.net/ddf128/article/details/143318625
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号