docker compose 部署MySQL InnoDB Cluster + Router 高可用集群-亲测可用

前言

记录docker compose 部署MySQL InnoDB Cluster + Router 高可用集群

现在有三台服务器:

172.16.10.80

172.16.10.98

172.16.10.97

通过网盘分享的文件:mysql集群部署.zip

链接: https://pan.baidu.com/s/1XiSMzs2pQ0qly1dRCg26KA?pwd=5ga8 提取码: 5ga8

快速部署

步骤一:下载压缩包解压

将 mysql集群部署\ip\mysql 文件夹上传到对应服务器 /home 文件夹下

步骤二:修改 /home/mysql/conf/my.cnf 文件

步骤三启动容器:

进入80 97 98服务器执行命令启动mysql容器

cd /home/mysql

docker compose up -d
安装 MySQL shell

sudo apt update

sudo apt install mysql-shell

配置 InnoDB Cluster 注:需要输入mysql密码配置得是root123输入即可

mysqlsh root@172.16.10.80:3306

// 初始化当前实例,注册到 MySQL Shell

dba.configure_instance('root@172.16.10.80:3306')

// 创建集群(首次执行)

cluster = dba.create_cluster('myCluster')

// 初始化其他节点

dba.configure_instance('root@172.16.10.97:3306')

dba.configure_instance('root@172.16.10.98:3306')

// 加入到集群当中

cluster.add_instance('root@172.16.10.97:3306')

cluster.add_instance('root@172.16.10.98:3306')

连接80 97 98 mysql执行

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';

FLUSH PRIVILEGES;

进入80服务器执行命令启动mysql-router容器

cd /home/mysql/mysqlrouter

docker compose up -d

启动成功:mysqlrouter 172.16.10.80 6446端口(读写)/ 6447 (读)

MySQL Router 就是 MySQL 集群的智能"流量转发器",把应用的请求自动送到正确的节点,实现读写分离、负载均衡和高可用。

yml配置

复制代码
#${MYSQL_HOST:mysqlrouter} 不走环境变量可用改成 ${MYSQL_HOST:172.16.10.80}
spring:
  datasource:
    url: jdbc:mysql:replication://${MYSQL_HOST:mysqlrouter}:6446,${MYSQL_HOST:mysqlrouter}:6447/${MYSQL_DB:test}?roundRobinLoadBalance=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=Hongkong&useAffectedRows=true&allowMultiQueries=true&rewriteBatchedStatements=true

参考文档:

https://www.cnblogs.com/wandereryjh/p/18851526

相关推荐
Knight_AL5 小时前
本地服务连接 SaaS 测试环境实践:Docker 部署 Redis 与 RocketMQ 完成接口联调
redis·docker·rocketmq
无人生还别怕6 小时前
如何安装任意版本docker
运维·docker·容器
狗凯之家源码网7 小时前
纯 PHP+MySQL 应用市场系统源码实测!
开发语言·mysql·php
帷幕落秋7 小时前
Docker镜像加速
运维·docker
帷幕落秋7 小时前
Docker原理-理论基础
运维·docker
TTATTC8 小时前
告别开源 Agent 的本地运维折磨:拆解阿里 QoderWork 的沙盒隔离架构与三级渐进式 Skills 编排实践
docker·开源
姚远Oracle ACE8 小时前
对比测试了 openGauss、PostgreSQL、Oracle、MySQL 的CPU 指令数
mysql·postgresql·oracle
帷幕落秋8 小时前
Docker常见命令总结
docker
程序员老赵8 小时前
Docker 部署 Redmine:轻松搭建私有化项目管理平台
docker·容器·开源