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

相关推荐
simeple4 分钟前
记一次 Docker Compose 项目迁移:从 Windows Docker Desktop 迁移到 CentOS 服务器
docker
Amnesia0_06 分钟前
MYSQL复合查询和内外连接
数据库·mysql
Fanta丶11 分钟前
22.MySql order by优化
mysql
哆啦A梦——43 分钟前
Ubuntu 虚拟机 Docker 与 MySQL 8.0.42 部署指南
mysql·ubuntu·docker
Plastic garden1 小时前
K8s知识(3) Pod亲和性,调度
云原生·容器·kubernetes
ManageEngine卓豪1 小时前
数据库可观测性:MySQL与Redis监控核心监控指标与全栈运维解决方案
数据库·redis·mysql·数据库性能·数据库监控
霸道流氓气质2 小时前
从MySQL到云原生:全面解析阿里云PolarDB数据库及其与MySQL的核心差异
数据库·mysql·云原生
木雷坞2 小时前
Playwright MCP Docker 部署:mcr 镜像、浏览器工具和权限配置
运维·docker·容器·mcp
das2m2 小时前
WSL2 Ubuntu 配置完美版 docker compose 指南
linux·ubuntu·docker