使用mysql shell搭建MGR
创始人
2024-12-26 04:06:47
0

准备环境

资源有限只需要准备一台Linux主机
腾讯云主机159.75.158.18

(1)规划部署

主机端口配置文件数据目录
159.75.158.183381/etc/my3381.cnf/data/3381/data
159.75.158.183382/etc/my3382.cnf/data/3382/data
159.75.158.183383/etc/my3383.cnf/data/3383/data

(2)准备实例配置文件
编辑3个配置文件,分别是
my3381.cnf
my3382.cnf
my3383.cnf

配置文件内容以my3383.cnf为例
将其中对应的数字3383 改为对应端口到不同配置文件

[mysqld] log_timestamps=SYSTEM user=mysql basedir=/usr/local/mysql8 datadir=/data/3383/data log_bin=/data/3383/binlog/mysql-bin port=3383 server_id=20243383 socket=/tmp/mysql3383.sock gtid-mode=on enforce-gtid-consistency=true log_slave_updates=1 relay_log_info_repository=TABLE master_info_repository=TABLE relay_log_recovery=on 

(3)创建目录

mkdir -p /data/3381/data mkdir -p /data/3381/binlog mkdir -p /data/3382/data mkdir -p /data/3382/binlog mkdir -p /data/3383/data mkdir -p /data/3383/binlog chown mysql.mysql -R /data 

(4)初始化和启动库

/usr/local/mysql8/bin/mysqld --defaults-file=/etc/my3381.cnf --basedir=/usr/local/mysql8 --initialize-insecure --datadir=/data/3381/data --user=mysql &  /usr/local/mysql8/bin/mysqld --defaults-file=/etc/my3382.cnf --basedir=/usr/local/mysql8 --initialize-insecure --datadir=/data/3382/data --user=mysql &  /usr/local/mysql8/bin/mysqld --defaults-file=/etc/my3383.cnf --basedir=/usr/local/mysql8 --initialize-insecure --datadir=/data/3383/data --user=mysql &    /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my3381.cnf --user=mysql &  /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my3382.cnf --user=mysql &  /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my3383.cnf --user=mysql & 

(5)创建账号

为了简化步骤,直接执行

三个库都执行  mysql> create user admin@'%' identified by 'admin'; Query OK, 0 rows affected (0.02 sec)  mysql> grant all on *.* to admin@'%' with grant option; Query OK, 0 rows affected (0.01 sec) 

此步骤不规范,正常操作应当是
Create a new admin account for InnoDB cluster with minimal required grants

#在本地通过socket方式登入
$ mysqlsh -S /data/****/mysql.sock root@localhost

执行
dba.configureInstance()

选择
2) Create a new admin account for InnoDB cluster with minimal required grants

数据用户和密码

在使用
mysqlsh --uri 用户@IP:端口 进入mysql shell界面

搭建MySQL shell环境

(1)下载:
https://dev.mysql.com/downloads/shell/

下载的shell版本和数据库版本保持一致

(2)解压
tar -zxvf mysql-shell-8.0.25-linux-glibc2.12-x86-64bit.tar.gz -C /opt/idc/mysql-shell8.0.25

(3)配置环境变量
vi /etc/profile
export PATH=/opt/idc/mysql-shell8.0.25/bin:$PATH
source /etc/profile

使用shell搭建MGR

(1)检查是否适配MGR节点
dba.checkInstanceConfiguration(‘admin@159.75.158.18:3381’)

MySQL  JS > dba.checkInstanceConfiguration('admin@159.75.158.18:3381') Validating MySQL instance at VM-20-8-centos:3381 for use in an InnoDB cluster...  This instance reports its own address as VM-20-8-centos:3381 Clients and other cluster members will communicate with it through this address by default. If this is not correct, the report_host MySQL system variable should be changed.  Checking whether existing tables comply with Group Replication requirements... No incompatible tables detected  Checking instance configuration... Instance configuration is compatible with InnoDB cluster  The instance 'VM-20-8-centos:3381' is valid to be used in an InnoDB cluster.  {     "status": "ok" } 

另外两台节点需要做此操作
dba.checkInstanceConfiguration(‘admin@159.75.158.18:3382’)
dba.checkInstanceConfiguration(‘admin@159.75.158.18:3383’)

如果此步报错说不符合MGR节点要求,执行第二步

(2)
执行 dba.configureInstance() 命令开始检查当前实例是否满足安装MGR集群的条件,如果不满足可以直接配置成为MGR集群的一个节点:

dba.configureInstance(‘admin@159.75.158.18:3381’)

dba.configureInstance('admin@159.75.158.18:3381') Configuring MySQL instance at VM-20-8-centos:3381 for use in an InnoDB cluster...  This instance reports its own address as VM-20-8-centos:3381 Clients and other cluster members will communicate with it through this address by default. If this is not correct, the report_host MySQL system variable should be changed.  applierWorkerThreads will be set to the default value of 4.  The instance 'VM-20-8-centos:3381' is valid to be used in an InnoDB cluster. The instance 'VM-20-8-centos:3381' is already ready to be used in an InnoDB cluster.  Successfully enabled parallel appliers. 

根据需要选择YES,后再返回执行第一个,看结果是否是OK

另外两个节点同样执行相同步骤
dba.configureInstance(‘admin@159.75.158.18:3382’)
dba.configureInstance(‘admin@159.75.158.18:3383’)

(3)连接主节点
MySQL JS > \connect admin@159.75.158.18:3381

(4)创建集群
dba.createCluster(‘mgrCluster’)
var cluster = dba.getCluster()

(5)添加节点
这里要指定MGR专用账号,我们用的是测试账户不符合规范
cluster.addInstance(‘admin@159.75.158.18:3382’)
cluster.addInstance(‘admin@159.75.158.18:3383’)

(6)查看集群状态

cluster.status()

查看集群状态   MySQL  159.75.158.18:3381 ssl  JS > cluster.status()   {     "clusterName": "mgrCluster",      "defaultReplicaSet": {         "name": "default",          "primary": "VM-20-8-centos:3381",          "ssl": "REQUIRED",          "status": "OK",          "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",          "topology": {             "VM-20-8-centos:3381": {                 "address": "VM-20-8-centos:3381",                  "memberRole": "PRIMARY",                  "mode": "R/W",                  "readReplicas": {},                  "replicationLag": null,                  "role": "HA",                  "status": "ONLINE",                  "version": "8.0.25"             },              "VM-20-8-centos:3382": {                 "address": "VM-20-8-centos:3382",                  "memberRole": "SECONDARY",                  "mode": "R/O",                  "readReplicas": {},                  "replicationLag": null,                  "role": "HA",                  "status": "ONLINE",                  "version": "8.0.25"             },              "VM-20-8-centos:3383": {                 "address": "VM-20-8-centos:3383",                  "memberRole": "SECONDARY",                  "mode": "R/O",                  "readReplicas": {},                  "replicationLag": null,                  "role": "HA",                  "status": "ONLINE",                  "version": "8.0.25"             }         },          "topologyMode": "Single-Primary"     },      "groupInformationSourceMember": "VM-20-8-centos:3381" } 

R/O是只读,R/W是读写,PRIMARY是主节点。

补充

切换到多主模式
cluster.switchToMultiPrimaryMode()

切换到单主模式
cluster.switchToSinglePrimaryMode(‘159.75.158.18:3381’)

相关内容

热门资讯

ia实测“金花房卡从哪里购买/... 皇豪互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
微信斗牛房卡找谁买/金花链接房... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
微信链接金花牛牛透视挂点控/微... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
房卡必备教程“微信牛牛链接金花... 卡卡大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
秒懂教程“微信链接金花房卡如何... 先锋大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
给大家讲解“微信上玩炸金花冲房... 新漫游牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
一分钟了解“金花房卡一手货源/... 卡贝大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
微信斗牛房卡怎么获得/微信牛牛... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
金花链接如何创建房间玩/微信上... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
金花链接如何创建房间玩/微信炸... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
微信牛牛房卡链接哪里有/微信链... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
终于找到“微信斗牛房卡专卖店联... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡...
ia实测“微信上玩炸金花冲房卡... 新上游牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
金花建房软件哪个好/微信链接牛... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
正版授权“牛牛链接房卡那里有/... 人海大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
微信链接斗牛房卡多少钱/微信金... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
一分钟推荐“微信链接斗牛房卡充... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
终于找到“微信开牛牛房卡在哪里... 新众乐牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
ia实测“金花房卡链接怎么购买... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
哪里有卖微信炸金花房卡/微信金... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...