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表示成功

四、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宕机后,重新连接会自动恢复集群状态

六、当集群所有节点都miss ,如何恢复

进入mysql shell后用下列命令

mysql-js> dba.rebootClusterFromCompleteOutage()

相关推荐
夜泉_ly1 小时前
MySQL -安装与初识
数据库·mysql
qq_529835352 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New4 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6754 小时前
数据库基础1
数据库
我爱松子鱼4 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo5 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser6 小时前
【SQL】多表查询案例
数据库·sql
Galeoto6 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)6 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231116 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql