基于docker的keepalived+MySQL主从实现MySQL高可用

该文详细介绍了如何在资源有限的环境下,利用双节点主从复制配合Keepalived实现MySQL的高可用性。通过容器化部署MySQL,使用模板化配置,确保集群的批量部署。在CentOS7.6系统上,配置了MySQL的主从同步,并通过Keepalived进行故障转移,确保VIP地址在主库异常时能切换到从库。此外,文中还提供了详细的测试步骤来验证主从同步和Keepalived的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因生产需要对MySQL做高可用,同时,资源有限,因此采用双节点主从+keepalived方式实现高勇。另外因需要大批量部署MySQL集群,需要采用模板化部署,本方案采用将MySQL容器化,实现MySQL模板化配置部署。

部署环境及软件:centos7.6、两个节点、keepalived-2.2.7、MySQL5.7.30

MySQL容器化部署配置参数

mysql采用mysql官方基础镜像mysql5.7
主节点ip:192.168.112.121
从节点ip:192.168.112.122
在主从节点上分别部署mysql容器,启动脚本

MySQL主从节点关键配置如下:

主节点(192.168.112.121)my.cnf配置

[client]
port=3306
default-character-set=utf8

[mysqld]
port=3306
server-id=1
log-bin=mysql-bin
binlog_do_db=xxx_db
binlog_format=mixed
character-set-server=utf8

从节点(192.168.112.122)my.cnf配置

[client]
port=3306
default-character-set=utf8

[mysqld]
port=3306
server-id=2
log-bin=mysql-bin
binlog_do_db=xxx_db
binlog_format=mixed
character-set-server=utf8

MySQL启动脚本

主数据库192.168.112.121

#!/bin/bash
docker rm -f msyql-server-1 || true
BASE_DIR=/home/services/mysql/mysql-1
docker run -d -p 3306:3306 \
   --name mysql-server-1 \
   --privileged=true --user=mysql \
   -e MYSQL_ROOT_PASSWORD=xxxx \
   -v $BASE_DIR/conf/my.cnf:/etc/mysql/my.cnf \
   -v $BASE_DIR/data:/var/lib/mysql \
   mysql:5.7

从数据库192.168.112.122

#!/bin/bash
docker rm -f msyql-server-2 || true
BASE_DIR=/home/services/mysql/mysql-1
docker run -d -p 3306:3306 \
   --name mysql-server-2 \
   --privileged<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

banche168

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值