因生产需要对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<