MySQL 8.0 Innodb Cluster搭建

环境介绍:
10.10.10.65   MySQL router 路由节点
10.10.10.205   MGR节点
10.10.10.206   MGR节点
10.10.10.207   MGR节点
 

三台服务器添加/etc/hosts 对IP的映射
10.10.10.205   testdb205
10.10.10.206   testdb206
10.10.10.207   testdb207



安装MySQL Shell
使用root用户进行安装,需要在所有节点执行
rpm -ivh MySQL-shell-8.0.18-1.el8.x86_64.rpm


通过MySQL Shell 连接MySQL节点
在各主机上分别用MySQL Shell 登录,并创建管理用户

# 在 10.10.10.205
mysqlsh root@"10.10.10.205:3306"  
JS> dba.configureInstance('root@10.10.10.205:3306',{clusterAdmin:"'clusteruser'@'%'",clusterAdminPassword:"Jimstars"})

# 在 10.10.10.206
mysqlsh root@"10.10.10.206:3306"  
JS> dba.configureInstance('root@10.10.10.206:3306',{clusterAdmin:"'clusteruser'@'%'",clusterAdminPassword:"Jimstars"})

# 在 10.10.10.207
mysqlsh root@"10.10.10.207:3306" 
JS> dba.configureInstance('root@10.10.10.207:3306',{clusterAdmin:"'clusteruser'@'%'",clusterAdminPassword:"Jimstars"})


创建集群
在任一节点执行创建cluster操作(建议在主节点执行,这里的节点为10.10.10.82),集群内节点离线自动尝试加入次数,每五分钟加入一次。
JS > var cluster = dba.createCluster('mycluster',{autoRejoinTries:10,expelTimeout:5})


添加另外两个节点
只用在一个节点执行,可以直接在上面使用的节点执行,需要添加的节点地址可修改的部分:clusteruser@10.10.10.206:3306 
JS > cluster.addInstance('clusteruser@10.10.10.206:3306');
Please select a recovery method [C]lone/[I]ncremental recovery/[A]bort (default Clone): C
A]bort (default Clone): C


JS > cluster.addInstance('clusteruser@10.10.10.207:3306');
Please select a recovery method [C]lone/[I]ncremental recovery/[A]bort (default Clone): C
A]bort (default Clone): C

添加完成后可以查看集群状态,执行下面操作
JS > cluster.status()

 

安装MySQL Router 
rpm -ivh mysql-router-community-8.0.22-1.el7.x86_64.rpm


创建MySQL Router目录
mkdir -p /mysqlrouter
chown -R mysqlrouter:mysqlrouter /mysqlrouter


生成MySQL Router 配置文件
cd  /mysqlrouter

mysqlrouter --bootstrap clusteruser@10.10.10.205:3306 --directory /mysqlrouter --user=mysqlrouter --conf-use-sockets 


配置MySQL Router服务和自启动
vi /usr/lib/systemd/system/mysql-router.service
[Unit]
Description=MySQL Router Service
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysqlrouter
Group=mysqlrouter

Type=forking

#Remove pid File before start. Ignore the return value
ExecStartPre=-/usr/bin/rm /mysqlrouter/mysqlrouter.pid

#Service Start
ExecStart=/mysqlrouter/start.sh

#Service Stop
ExecStop=/mysqlrouter/stop.sh

#Service Restart On Failure
Restart=on-failure

#Service Restart Retries after 5s wait
RestartSec=5s

LimitNOFILE=65535




修改后重载配置生效
systemctl daemon-reload


使用root用户运行命令,使服务注册
systemctl enable mysql-router.service


使用root用户启动服务
systemctl start mysql-router.service

 

posted @ 2021-01-23 18:28  屠魔的少年  阅读(5)  评论(0)    收藏  举报