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()

相关推荐
2302_809798329 分钟前
【JavaWeb】MySQL
数据库·mysql
drowingcoder16 分钟前
MySQL相关
数据库
Musennn1 小时前
MySQL刷题相关简单语法集合
数据库·mysql
Think Spatial 空间思维2 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
逝水如流年轻往返染尘2 小时前
MySQL表的增删查改
mysql
laowangpython2 小时前
MySQL基础面试通关秘籍(附高频考点解析)
数据库·mysql·其他·面试
mooyuan天天3 小时前
SQL注入报错“Illegal mix of collations for operation ‘UNION‘”解决办法
数据库·web安全·sql注入·dvwa靶场·sql报错
运维-大白同学3 小时前
go-数据库基本操作
开发语言·数据库·golang
R-sz3 小时前
通过从数据库加载MinIO配置并初始化MinioClient,spring boot之Minio上传
数据库·oracle
洛阳泰山3 小时前
Windows系统部署MongoDB数据库图文教程
数据库·windows·mongodb