当前位置: 代码网 > it编程>数据库>Mysql > MySQL8.0高可用MIC的实现

MySQL8.0高可用MIC的实现

2024年10月28日 Mysql 我要评论
一、机器准备机器主机名ip地址角色软件mic-master192.168.252.148主节点mysql8.0.23 mysql-shell-8.0.23mic-node1192.168.252.14

一、机器准备

机器

主机名

ip地址

角色

软件

mic-master

192.168.252.148

主节点

mysql8.0.23 mysql-shell-8.0.23

mic-node1

192.168.252.142

node1

mysql8.0.23

mic-node2

192.168.252.145

node2

mysql8.0.23

关闭防火墙

systemctl stop firewalld
setenforce 0

二、环境准备

安装mysql8.0.23

官方地址:mysql :: begin your download

三台机器均安装

1.安装工具
yum -y install perl-json perl-test-simple
2.获取安装包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-server-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-client-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-devel-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-common-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-8.0.23-1.el7.x86_64.rpm 
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-compat-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-embedded-compat-8.0.23-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-test-8.0.23-1.el7.x86_64.rpm
3.安装
rpm -ivh mysql-community-common-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.23-1.el7.x86_64.rpm

修改配置文件

所有节点修改进行修改配置文件

添加配置的模版
server_id=[id]  #每一台的都不一样,要唯一
report_host=[当前服务器ip]
report_port=[mysql端口号]
loose-group_replication_ip_whitelist="[ip1],[ip2],[ip3]"

进行修改

vim /etc/my.cnf

192.168.252.148:

server-id=1
report_host=192.168.252.148
report_port=3306
loose-group_replication_ip_whitelist="192.168.252.148,192.168.252.142,192.168.252.145"

192.168.252.142:

server-id=2
report_host=192.168.252.142
report_port=3306
loose-group_replication_ip_whitelist="192.168.252.148,192.168.252.142,192.168.252.145"

192.168.252.145:

server-id=3
report_host=192.168.252.145
report_port=3306
loose-group_replication_ip_whitelist="192.168.252.148,192.168.252.142,192.168.252.145"

启动并修改密码

systemctl start mysqld

192.168.252.148:

cat /var/log/mysqld.log | grep "password"
mysqladmin -uroot -p'cu)ghjzfk3_j' password @syh2025659

192.168.252.142:

cat /var/log/mysqld.log | grep "password"
mysqladmin -uroot -p'*qywtizhh8-j' password '@syh2025659'

192.168.252.145:

cat /var/log/mysqld.log | grep "password"
mysqladmin -uroot -p'z+ly31m>y#sy' password '@syh2025659'

主服务器安装mysql-shell-8.0.23

下载链接:https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz

wget https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz
解压:
tar -xzf mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz -c /usr/local/
cd /usr/local	
mv mysql-shell-8.0.23-linux-glibc2.12-x86-64bi mysql-shell

三、终端操作

mysql操作

创建用户并授权

三台机器均添加

1.创建用户
create user syh identified by '@syh2025659';
2.授权给用户
grant backup_admin, clone_admin, create user, execute, file, persist_ro_variables_admin, process, reload, replication client, replication slave, select, shutdown, super, system_variables_admin on *.* to 'syh'@'%' with grant option;
grant delete, insert, update on mysql.* to 'syh'@'%' with grant option;
grant alter, alter routine, create, create routine, create temporary tables, create view, delete, drop, event, execute, index, insert, lock tables, references, show view, trigger, update on mysql_innodb_cluster_metadata.* to 'syh'@'%' with grant option;
grant alter, alter routine, create, create routine, create temporary tables, create view, delete, drop, event, execute, index, insert, lock tables, references, show view, trigger, update on mysql_innodb_cluster_metadata_bkp.* to 'syh'@'%' with grant option;
grant alter, alter routine, create, create routine, create temporary tables, create view, delete, drop, event, execute, index, insert, lock tables, references, show view, trigger, update on mysql_innodb_cluster_metadata_previous.* to 'syh'@'%' with grant option;
grant all on *.* to 'syh'@'%';
grant all privileges on *.* to 'syh'@'%' with grant option;
3.刷新权限
flush privileges;

192.168.252.148:

192.168.252.142:

192.168.252.145:

mysql-shell操作

进入mysql-shell

/usr/local/mysql-shell/bin/mysqlsh   #启动

连接主库信息

\c syh@192.168.252.148:3306     

配置集群

dba.configureinstance('syh@192.168.252.148:3306');
dba.configureinstance('syh@192.168.252.142:3306');
dba.configureinstance('syh@192.168.252.145:3306');

创建一个集群

var cluster=dba.createcluster('mysqlcluster');

查看主机群状态

dba.getcluster().status();

添加两个从节点

var cluster=dba.getcluster();
cluster.addinstance('syh@192.168.252.142:3306');
cluster.addinstance('syh@192.168.252.145:3306');

查看节点

cluster.status();

清空集群

dba.dropmetadataschema(); 清除所有集群

四、故障恢复

安装mysql-router

192.168.252.148:

wget https://downloads.mysql.com/archives/get/p/41/file/mysql-router-8.0.23-linux-glibc2.12-x86_64.tar.xz
tar xf mysql-router-8.0.23-linux-glibc2.12-x86_64.tar.xz -c /usr/local
cd /usr/local
mv mysql-router-8.0.23-linux-glibc2.12-x86_64 mysql-router

修改配置文件

首次启动

192.168.252.148:

cd /usr/local/mysql-router/bin
./mysqlrouter --bootstrap syh@192.168.252.148:3306 --user=root

修改配置文件

vim /usr/local/mysql-router/mysqlrouter.conf
#dynamic_state=/usr/local/mysql-router/bin/../var/lib/mysqlrouter/state.json
bootstrap_server_addresses=mysql://192.168.252.148:3306,mysql://192.168.252.142:3306,mysql://192.168.252.145:3306

启动

192.168.252.148:

cd /usr/local/mysql-router/bin
./mysqlrouter -c ../mysqlrouter.conf &
netstat -tnpl

停掉主库

192.168.252.148:

systemctl stop mysqld

操作mysql-shell

192.168.252.148:

/usr/local/mysql-shell/bin/mysqlsh
\c syh@192.168.252.145:3306
var cluster=dba.getcluster();
cluster.status();

192.168.252.148:

systemctl start mysqld

再次查看

恢复!

到此这篇关于mysql8.0高可用mic的实现的文章就介绍到这了,更多相关mysql8.0高可用mic内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com