linux下mysql-8.2.0集群部署(python版本要在2.7以上)

目录

一、三台主机准备工作

1、mysql官方下载地址:https://dev.mysql.com/downloads/

2、修改/etc/hosts

3、关闭防火墙

二、三台主机安装mysql-8.2.0

1、解压

2、下载相应配置

3、初始化mysql,启动myslq,设置开机自启

4、查看初始密码并登录

5、修改密码

[三、三台主机安装mysql shell并部署使用](#三、三台主机安装mysql shell并部署使用)

1、安装依赖

[2、安装mysql shell](#2、安装mysql shell)

[3、使用mysql shell部署集群](#3、使用mysql shell部署集群)

4、重启mysql

5、检测是否就绪

[6、创建集群[root@sql01 ~]# mysqlsh --uri root@sql01:3306](# mysqlsh --uri root@sql01:3306)

[7、获取集群对象 MySQL sql01:3306 ssl JS > var cluster = dba.getCluster('myCluster');](#7、获取集群对象 MySQL sql01:3306 ssl JS > var cluster = dba.getCluster('myCluster');)

[8、将另外2台加入 MySQL sql01:3306 ssl JS > cluster.addInstance('root@sql02:3306');](#8、将另外2台加入 MySQL sql01:3306 ssl JS > cluster.addInstance('root@sql02:3306');)

9、查看集群状态为ONLINE表示成功

[四、mysql router安装](#四、mysql router安装)

五、测试

[六、当集群所有节点都miss ,如何恢复](#六、当集群所有节点都miss ,如何恢复)


一、三台主机准备工作

1、mysql官方下载地址:https://dev.mysql.com/downloads/

获取以下

mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar

mysql-router-community-8.2.0-1.el7.x86_64.rpm

mysql-shell-8.2.0-1.el7.x86_64.rpm

2、修改/etc/hosts

bash 复制代码
[root@localhost ~]# vim /etc/hosts
192.168.6.150 sql01
192.168.6.162 sql02
192.168.6.165 sql03

[root@localhost ~]# hostnamectl set-hostname sql03
[root@localhost ~]# bash

3、关闭防火墙

bash 复制代码
[root@sql03 ~]# systemctl stop firewalld
[root@sql03 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@sql03 ~]# setenforce 0
[root@sql03 ~]# iptables -F

二、三台主机安装mysql-8.2.0

1、解压

bash 复制代码
[root@sql03 ~]# tar -xvf mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar 

2、下载相应配置

bash 复制代码
[root@sql03 ~]#  rpm -ivh mysql-community-common-8.2.0-1.el7.x86_64.rpm 
[root@sql03 ~]#  rpm -ivh mysql-community-client-plugins-8.2.0-1.el7.x86_64.rpm 
[root@sql03 ~]#  rpm -ivh mysql-community-libs-8.2.0-1.el7.x86_64.rpm
[root@sql03 ~]#  rpm -ivh mysql-community-client-8.2.0-1.el7.x86_64.rpm 
[root@sql03 ~]#  rpm -ivh mysql-community-icu-data-files-8.2.0-1.el7.x86_64.rpm 
[root@sql03 ~]#  rpm -ivh mysql-community-server-8.2.0-1.el7.x86_64.rpm

3、初始化mysql,启动myslq,设置开机自启

bash 复制代码
[root@sql03 ~]# sudo rm -rf /var/lib/mysql/*
[root@sql03 ~]# sudo -u mysql mysqld --initialize
[root@sql03 ~]# chown mysql:mysql /var/lib/mysql -R
[root@sql03 ~]# systemctl start mysqld.service;
[root@sql03 ~]# systemctl enable mysqld;

4、查看初始密码并登录

bash 复制代码
[root@sql03 ~]# cat /var/log/mysqld.log | grep password
将上面命令最后一句话复制到password即可登录
[root@sql03 ~]# mysql -u root -p
Enter password: 

5、修改密码

bash 复制代码
mysql> create user 'root'@'%' identified with mysql_native_password by '123456'; 
Query OK, 0 rows affected (0.00 sec)

创建远程访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

三、三台主机安装mysql shell并部署使用

1、安装依赖

bash 复制代码
[root@sql03 ~]# yum install libyaml -y
已加载插件:fastestmirror

2、安装mysql shell

bash 复制代码
[root@sql03 ~]#  rpm -ivh mysql-shell-8.2.0-1.el7.x86_64.rpm

3、使用mysql shell部署集群

bash 复制代码
[root@sql01 ~]# mysqlsh --uri root@sql01:3306

连接sql01
 MySQL  sql01:3306 ssl  JS > \connect root@sql01:3306

配置本地实例的数据库管理员(DBA)。
 MySQL  sql01:3306 ssl  JS > dba.configureLocalInstance()

Do you want to perform the required configuration changes? [y/n]: y
Do you want to restart the instance after configuring it? [y/n]: y
都选y

4、重启mysql

root@sql01 \~\]# systemctl restart mysqld #### 5、检测是否就绪 ```bash [root@sql01 ~]# mysqlsh MySQL JS > dba.checkInstanceConfiguration('root@sql01:3306') { "status": "ok" } ``` #### 6、创建集群 \[root@sql01 \~\]# mysqlsh --uri root@sql01:3306 MySQL sql01:3306 ssl JS \> var cluster = dba.createCluster('myCluster'); #### 7、获取集群对象 MySQL sql01:3306 ssl JS \> var cluster = dba.getCluster('myCluster'); 8、将另外2台加入 MySQL sql01:3306 ssl JS \> cluster.addInstance('root@sql02:3306'); Please select a recovery method \[C\]lone/\[I\]ncremental recovery/\[A\]bort (default Clone): c C是克隆,I是增量,A收中止 MySQL sql01:3306 ssl JS \> cluster.addInstance('root@sql03:3306'); #### 9、查看集群状态为ONLINE表示成功 ![](https://file.jishuzhan.net/article/1720049543300517889/a6bb262cebc9577dd795ce69fb85fab9.webp) ### 四、mysql router安装 只需要在一台上安装mysqlrouter ```bash [root@sql01 ~]# rpm -ivh mysql-router-community-8.2.0-1.el7.x86_64.rpm ``` vim /etc/mysqlrouter/mysqlrouter.conf 在\[DEFAULT\] 下 设置连接数: max_connections=1024  # 目前就支持两种 : read-write 和 read-only  # read-write:用于高可用,用于可读可写  # read-only:用于负载均衡,只读 ### 五、测试 将PRIMARY(192.168.6.150)角色宕机 192.168.6.162会替代PRIMARY,即使150重新连接也不会取代 SECONDARY宕机后,重新连接会自动恢复集群状态 ![](https://file.jishuzhan.net/article/1720049543300517889/3bce5c07e8c5adeb0a77c70b06688efc.webp) ### 六、当集群所有节点都miss ,如何恢复 进入mysql shell后用下列命令 mysql-js\> dba.rebootClusterFromCompleteOutage()

相关推荐
时光追逐者3 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
头顶秃成一缕光26 分钟前
Redis的主从模式和哨兵模式
数据库·redis·缓存
AIGC大时代28 分钟前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
博睿谷IT99_29 分钟前
数据库证书可以选OCP认证吗?
数据库·oracle·开闭原则·ocp认证
乐维_lwops41 分钟前
数据库监控 | MongoDB监控全解析
数据库·mongodb·数据库监控
观无41 分钟前
Redis安装及入门应用
数据库·redis·缓存
柏油2 小时前
MySql InnoDB 事务实现之 undo log 日志
数据库·后端·mysql
DolphinScheduler社区2 小时前
白鲸开源WhaleStudio与崖山数据库管理系统YashanDB完成产品兼容互认证
数据库·开源·认证·崖山数据库·白鲸开源
阑梦清川2 小时前
AI超级智能体项目教程(二)---后端项目初始化(设计knif4j接口文档的使用)
java·前端·数据库
hotlinhao2 小时前
ThinkPHP6模型中多组条件逻辑或Or查询的使用
linux·服务器·数据库