InnoDB Cluster 8.4|集群部署

实验环境

主机名/IP角色
server01/192.168.1.201
server02/192.168.1.202
server03/192.168.1.203

ALL NODES

添加映射

vim /etc/hosts
192.168.1.201 server01
192.168.1.202 server02
192.168.1.203 server03

安装mysql存储库

wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
dpkg -i mysql-apt-config_0.8.32-1_all.deb 
apt update -y

安装mysql

apt install mysql-server -y

注意:避免多主集群发生自动增量冲突的可能性,进行以下操作

vim /etc/mysql/mysql.conf.d/mysql.conf

如果是在单主模式:

[mysqld]
auto_increment_increment = 1;
auto_increment_offset = 2;

如果是在多主模式,但是少于7个的时候:

[mysqld]
auto_increment_increment = 7
auto_increment_offset = 1 + server_id % 7

如果是在多主模式,大于7个时:

[mysqld]
auto_increment_increment = 实例数
auto_increment_offset = 1 + server_id % 实例数

配置允许外部访问mysql

[mysqld]
bind-address=0.0.0.0

重启服务

systemctl restart mysql

安装mysql shell

apt install mysql-shell -y

使用mysql shell连接mysql

mysqlsh mysql://root@localhost:3306

进入js模式查询已连接数据库信息

\js
session;
shell.status();
\quit

执行mysql指令可以使用:

\sql mysql指令

创建集群服务配置账户

mysqlsh mysql://root@localhost:3306
\js
dba.configureInstance('root@localhost:3306',{clusterAdmin:"'clusteradmin'@'%'"});

检查实例是否符合集群要求

dba.checkInstanceConfiguration('clusteradmin@localhost:3306');

server01

创建一个名为testCluster的集群

mysqlsh -u clusteradmin -p
\js
var cluster = dba.createCluster('testCluster')

Tips:这一步之后也可以使用变量cluster调用 setupAdminAccount("用户名") 来创建集群管理员账户

查看集群信息

cluster.status()

将其他两个实例添加到集群

cluster.addInstance('clusteradmin@192.168.1.202:3306')
cluster.addInstance('clusteradmin@192.168.1.203:3306')

Tips:配置集群的时候可以增加参数memberWeight来定义选举主节点的权重,百分比越高越有可能被选择为单主集群中的主节点
var cluster = cluster.createCluster('testCluster',{memberWeight:35})
cluster.addInstance('clusteradmin@192.168.1.202:3306',{memberWeight:25})

从其他节点验证

mysqlsh -u root -p -h 192.168.1.202
\js
var cluster = dba.getCluster('testCluster')
cluster.status()

拓展

重置集群

dba.rebootClusterFromCompleteOutage(instance)

更新集群元数据

cluster.rescan()

强制将某个成员提升成主节点

cluster.setPrimaryInstance(instance)

切换集群模式

#切换成多主
cluster.switchToMultiPrimaryMode(instance)
#切换成单主
cluster.switchToSinglePrimaryMode(instance)

从集群中删除节点

cluster.removeInstance(instance)

解散集群

cluster.dissolve()
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!