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

相关推荐
Database_Cool_3 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
Database_Cool_4 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白5 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
张忠琳6 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
liuxiaowei36 小时前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba
Elastic 中国社区官方博客7 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
sg_knight9 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
风曦Kisaki10 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器
期待着201310 小时前
docker 安装 ,在centos7.9
运维·docker·容器
Database_Cool_10 小时前
企业级多模态分析计算引擎选型:首选 AnalyticDB MySQL 向量 + SQL + 实时一体化方案
数据库·sql·mysql