当前位置: 首页 > 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.dtcms.com/a/279099.html

相关文章:

  • Ubuntu服务器安装Miniconda
  • VS2019编译使用log4cplus 1.2.0
  • AI数字人正成为医药行业“全场景智能角色”,魔珐科技出席第24届全国医药工业信息年会
  • DataWhale AI夏令营 Task2笔记
  • Linux —— A / 基础指令
  • 【牛客LeetCode数据结构】单链表的应用——合并两个有序链表问题、链表的回文结构问题详解
  • 游戏设备软件加密锁复制:技术壁垒与安全博弈
  • js与vue基础学习
  • 鸿蒙应用开发: 鸿蒙项目中使用私有 npm 插件的完整流程
  • docker-compose 安装Alist
  • Cesium源码打包
  • 数字孪生技术驱动UI前端革新:实现产品设计的虚拟仿真与实时反馈
  • Django Admin 配置详解
  • 【更新至2024年】2009-2024年上市公司华证esg评级、评分数据(含细分项)(年度+季度)
  • 大数据在UI前端的应用深化:基于用户行为数据的界面布局优化
  • 来时路,零帧起手到Oracle大师
  • Faiss能解决什么问题?Faiss是什么?
  • DiffDet4SAR——首次将扩散模型用于SAR图像目标检测,来自2024 GRSL(ESI高被引1%论文)
  • 前端性能与可靠性工程系列: 渲染、缓存与关键路径优化
  • 【Python办公】Python如何批量提取PDF中的表格
  • 【Java笔记】七大排序
  • 基于MaxCompute MaxFrame 汽车自动驾驶数据预处理最佳实践
  • Excel常用快捷键与功能整理
  • QT tabWidget移除页面和隐藏表头
  • RabbitMQ的几个模式
  • Nginx基础
  • 【数据结构初阶】--单链表(二)
  • [spring6: ResolvableType TypeDescriptor ConversionService]-类型系统
  • [笔记] 动态 SQL 查询技术解析:构建灵活高效的企业级数据访问层
  • 131. Java 泛型 - 目标类型与泛型推断