当前位置: 首页 > news >正文

MySQL Innodb Cluster配置

目录

配置规划

三台主机分别创建'mingliang'@'%' 用户并授权

安装mysql shell(三台机器必须全部安装)

在mysql8用户中配置环境变量

使用mysql shell登录测试

安装mysql router(三台主机必须全部安装)

在MySQL8用户中配置环境变量

通过MySQLShell搭建MGR,下面步骤每个节点都执行

创建集群实例(在master执行即可)

配置MySQLRouter路由

测试配置

连接测试

数据同步测试

故障测试


配置规划

本篇文章中MySQL使用编译安装

ip地址

主机名

角色

安装软件

192.168.3.2

348aeb8077a8

主(初始化)

Mysql8.0.30

mysql-shell

mysql-route

192.168.3.2

7ff037fcf001

备(初始化)

Mysql8.0.30

mysql-shell

mysql-route

192.168.3.4

fc7b8078d23b

备(初始化)

Mysql8.0.30

mysql-shell

mysql-route

三台实例分别创建'mingliang'@'%' 用户并授权

create user 'mingliang'@'%' identified with mysql_native_password by '123456';
grant all on *.* to  'mingliang'@'%' with grant option;

安装mysql shell(三台机器必须全部安装)

wget https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.30-linux-glibc2.12-x86-64bit.tar.gz
tar -xzvf mysql-shell-8.0.30-linux-glibc2.12-x86-64bit.tar.gz
mv mysql-shell-8.0.30-linux-glibc2.12-x86-64bit /usr/local/mysqlsh
chown mysql8:mysql8 -R /usr/local/mysqlsh

在mysql8用户中配置环境变量

su - mysql8
vim .bash_profile  /添加下述内容export PATH=$MYSQL_HOME/bin:/usr/local/mysqlsh/bin:$PATH#使文件生效
source .bash_profile

使用mysql shell登录测试

mysqlsh --mysqlx -h 192.168.3.2 -P 33060 -umingliang -p

这里登录测试的时候出现了一个这样的错误

MySQL Error 2027: Requested session assumes MySQL X Protocol but '192.168.3.2:3306' seems to speak the classic MySQL protocol (Unexpected response received from server, msg-id:10)

这个是因为上面连接的时候X协议的端口没有指定正确,可以使用mysql -u root -p -e "select @@mysqlx_port"查看X协议端口,然后连接的时候指定正确的端口就可以成功登录了

参考文档:mysql - 如何为 mysql 8 docker 容器启用 x 协议_Stack Overflow中文网

安装mysql router(三台主机必须全部安装)

wget https://downloads.mysql.com/archives/get/p/41/file/mysql-router-8.0.30-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-router-8.0.30-linux-glibc2.12-x86_64.tar.xz#没有xz的话需要安装下
yum install -y xzmv mysql-router-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysqlrouter
chown mysql8:mysql8 /usr/local/mysqlrouter

在MySQL8用户中配置环境变量

su - mysql8
vim .bash_profile  /添加下述内容export PATH=$MYSQL_HOME/bin:/usr/local/mysqlsh/bin:/usr/local/mysqlrouter/bin:$PATH#使文件生效
source .bash_profile

通过MySQLShell搭建MGR,下面步骤每个节点都执行

#192.168.3.2 root@348aeb8077a8  master
su - mysql8
mysqlsh --mysqlx -h 192.168.3.2 -P33060 -umingliang -pdba.configureInstance();dba.configureInstance();#192.168.3.3 root@7ff037fcf001  slave1
su - mysql8
mysqlsh --mysqlx -h 192.168.3.3 -P33060 -umingliang -pdba.configureInstance();dba.configureInstance();#192.168.3.4 root@fc7b8078d23b  slave2
su - mysql8
mysqlsh --mysqlx -h 192.168.3.4 -P33060 -umingliang -pdba.configureInstance();dba.configureInstance();

创建集群实例(在master执行即可)

#默认为单主模式,第一个加入为写节点
#---第一个节点创建集群实例(192.168.3.2)var cluster = dba.createCluster('DemoCluster')#添加其他节点192.168.3.3和192.168.3.4,此时会进行数据库克隆,
#把节点1的数据库复制到其它数据库,同时进行同步。var cluster=dba.getCluster()cluster.addInstance('mingliang@192.168.3.3:3306')cluster.addInstance('mingliang@192.168.3.4:3306')#查看集群状态var cluster=dba.getCluster()cluster.status();

这里由于3个节点的UUID相同,导致添加集群节点的没有添加进去

Cluster.addInstance: Cannot add an instance with the same server UUID (1d6dd7c2-5ff7-11f0-bb22-0242c0a80302) of an active member of the cluster '348aeb8077a8:3306'. Please change the UUID of the instance to add, all members must have a unique server UUID. (RuntimeError)

更新uuid后,master节点执行了克隆恢复,但是发现一直处于* Waiting for server restart... 状态,直至超时,去slave查看error.log发现发生了crash,导致启动失败

最后重新配置了一次,在添加节点恢复的时候选择了增量恢复后,成功添加

#添加slave1

#添加slave2

配置MySQLRouter路由

#创建路由数据目录
su - mysql8
mkdir myroyter#路由初始化
#master
mysqlrouter --bootstrap mingliang@172.0.0.1:3306 --directory /home/mysql8/myrouter --conf-use-sockets  --user mysql8#启动路由
./myrouter/star.sh

测试配置

连接测试

 mysql -u mingliang -p -P6446

数据同步测试

create database demo1;

故障测试

http://www.lryc.cn/news/587855.html

相关文章:

  • 【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【3】使用OpenCV读取分割后的压力表读数
  • DiffDet4SAR——首次将扩散模型用于SAR图像目标检测,来自2024 GRSL(ESI高被引1%论文)
  • vue-v-model进阶-ref-nextTick
  • 网络安全核心定律
  • 5G 到 6G通信技术的革新在哪里?
  • libimagequant windows 编译
  • 基于Python的就业数据获取与分析预测系统的设计与实现
  • Boost.Asio 异步写:为什么多次 async_write_some 会导致乱序,以及如何解决
  • 机器学习中的朴素贝叶斯(Naive Bayes)模型
  • 微软发布BioEmu模型
  • Web3:Foundry使用指南
  • 银河麒麟KYSEC安全机制详解
  • 《C++初阶之STL》【泛型编程 + STL简介】
  • 宝塔面板常见问题
  • 【算法】贪心算法:将数组和减半的最少操作次数C++
  • ubuntu22.04下配置qt5.15.17开发环境
  • 2.查询操作-demo
  • 解决Chrome此扩展程序不再受支持,因此已停用
  • 代数基本定理
  • 史上最清楚!读者,写者问题(操作系统os)
  • 美联储降息趋缓叠加能源需求下调,泰国证券交易所新一代交易系统架构方案——高合规、强韧性、本地化的跨境金融基础设施解决方案
  • 软考 系统架构设计师系列知识点之杂项集萃(110)
  • 在Adobe Substance 3D Painter中,已经有基础图层,如何新建一个图层A,clone基础图层的纹理和内容到A图层
  • K8S的Helm包管理器
  • WebView 性能调试全流程:卡顿问题实战还原与优化路径解析
  • 基于 Gitlab、Jenkins与Jenkins分布式、SonarQube 、Nexus 的 CiCd 全流程打造
  • 考完数通,能转云计算/安全方向吗?转型路径与拓展路线分析
  • 计算机毕业设计Java医学生在线学习平台系统 基于 Java 的医学生在线学习平台设计与开发 Java 医学在线教育学习系统的设计与实现
  • 【云服务器安全相关】如何使用 `ping` 命令排查云服务器网络连接问题
  • Java实现文件自动下载,XXL-Job定时任务中的HTTP文件下载最佳实践