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

相关推荐
Java后端的Ai之路9 小时前
Kubernetes是什么?(小白入门版)
云原生·容器·kubernetes·教程
木雷坞10 小时前
视觉算法环境 Docker 镜像拉取失败排查
运维·人工智能·docker·容器
qq_2837200510 小时前
Python3 模块精讲:pymysql(第三方)- 连接 MySQL
mysql·adb·pymysql
czlczl2002092510 小时前
MySQL 性能优化:前缀索引(Prefix Index)深度解析
数据库·mysql·性能优化
瀚高PG实验室10 小时前
安全版V4.5版本docker容器license过期问题处理步骤
安全·docker·容器·瀚高数据库
java_logo11 小时前
SiYuan 思源笔记 Docker 部署终极指南:Windows+Linux 双平台
windows·笔记·docker·思源笔记·思源笔记部署·docker部署思源笔记·思源笔记文档
y = xⁿ11 小时前
MySQL八股知识合集
android·mysql·adb
Hello.Reader11 小时前
Ubuntu 上正确安装 Kali 虚拟机、Docker 与 kail 工具指南
linux·ubuntu·docker
计算机安禾12 小时前
【Linux从入门到精通】第33篇:数据库MySQL/MariaDB安装与基础调优
linux·数据库·mysql
筱_智12 小时前
Docker学习-超详细-通俗易懂(从入门到精通)
学习·docker·容器