0


MySQL

一、MySQL安装部署

1.1 安装Mysql

[root@mysql-node1 ~]# tar zxf mysql-boost-5.7.44.tar.gz --- 解压MySQL

对mysql进行编译
在这里插入图片描述
在这里插入图片描述
缺少c、c++,yum安装后继续编译
在这里插入图片描述
缺少openssl,下载openssl-devel包
在这里插入图片描述
同理安装
在这里插入图片描述
安装后,发现又报了一次没有ncurses的错误,是因为要删除CMake-cache缓存文件,删除后重新编译
完成后make -j2 安装
最后make install 将生成的信息自动拷入对应位置
ps:位置就是编译过程中选择的目的地位置
在这里插入图片描述

1.2 部署Mysql

修改环境变量
[root@mysql-node1 mysql-5.7.44]# vim ~/.bash_profile
对下列文件位置进行更改
在这里插入图片描述
在这里插入图片描述
生成数据目录,加权限
在这里插入图片描述
修改环境变量与配置文件
在这里插入图片描述
初始化建立数据
在这里插入图片描述
启动mysql
在这里插入图片描述
开机启动
在这里插入图片描述
输入密码启动
在这里插入图片描述
此时打开数据库,它要求我们修改密码
在这里插入图片描述
安全初始化
在这里插入图片描述
在这里插入图片描述
此时再登陆就可以查询了
在这里插入图片描述
将数据库拷贝到另一台主机上
在这里插入图片描述
添加用户,建立目录
在这里插入图片描述
传输
在这里插入图片描述
传输完成
在这里插入图片描述
然后在第二台机中继续进行编译环境变量、设置启动脚本、修改配置文件、初始化等操作
在这里插入图片描述
在这里插入图片描述
最后,打开数据库,拷贝配置完毕。
在这里插入图片描述

二、MySQL主从复制

2.1 一主一从(无数据)

配置ID
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
log-bin 二进制日志(将操作进行保存记录)
查看mysql文件夹,发现并没有日志存在
在这里插入图片描述
重启后,ll查询到日志的存在
在这里插入图片描述
查看日志信息
在这里插入图片描述
登录mysql,建立用户用于slave认证
在这里插入图片描述
授权,然后查看状态
在这里插入图片描述
在slave端配置
在这里插入图片描述
配置后启动
在这里插入图片描述
启动后查看状态,发现俩yes,说明储备成功
在这里插入图片描述
给主机创建数据库,在slave机查询,看是否能查到
master:
在这里插入图片描述
slave:
在这里插入图片描述
在从数据库中插入也可查询到
在这里插入图片描述
但是主数据库查不到
在这里插入图片描述

2.2 当有数据时添加slave2

前面配置与先前类似
master主机上实施备份
在这里插入图片描述
备份后查看表信息
在这里插入图片描述
将备份的文件发送到slave2上
在这里插入图片描述
在slave2中备份数据库,然后恢复
在这里插入图片描述
在这里插入图片描述
接下来,打开数据库进行连接
在这里插入图片描述
连接发现有错误
在这里插入图片描述
停掉,修改。
在这里插入图片描述
有错误可能是密码有误,可以打开主机多尝试几次,确保登录信息无误再去副机进行登录
在这里插入图片描述
确认密码后,在副机上进行登录
在这里插入图片描述
查看状态,显示已经登录完毕
在这里插入图片描述
在这里插入图片描述
此时在主机上添加数据库信息,在slave2上可以查到

在这里插入图片描述
在slave1上也可以查到,说明一主两从配置完毕
在这里插入图片描述
当读取>写入 从的个数要大于主的个数,反之小于。

2.3 延迟复制

在这里插入图片描述
设置延迟为60s
在这里插入图片描述
主机删除数据,slave2上并没有立即变化
在这里插入图片描述
在这里插入图片描述
过了一分钟后,才复制到主机内容
在这里插入图片描述

2.4 慢查询

在这里插入图片描述
设定后查询
在这里插入图片描述
查询设定的慢查询的时间
在这里插入图片描述
慢查询
在这里插入图片描述
查看日志
在这里插入图片描述

2.5 Mysql并行复制

默认情况下slave中使用的是sql单线程回放
在master中时多用户读写,如果使用sql单线程回放那么会造成组从延迟严重
开启MySQL的多线程回放可以解决上述问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时sql线程转化为协调线程,16个worker负责处理sql协调线程发送过来的处理请求。

2.6 Mysql主从复制原理

在这里插入图片描述
在这里插入图片描述

三、半同步模式

3.1 gtid配置

在这里插入图片描述
配置后重启
在这里插入图片描述
gtid已开启
在这里插入图片描述
在这里插入图片描述
配置后打开slave,实现自动识别
在这里插入图片描述
在这里插入图片描述

3.2 半同步模式

在这里插入图片描述
进入配置文件,加入参数,开启半同步模式
在这里插入图片描述
在mysql中下载相关包

在这里插入图片描述
在这里插入图片描述
查看相关内容的状态
在这里插入图片描述
master配置完毕后,再在其他slave机上配置相关内容
注意,要先打开数据库,再添加配置,否则会启动失败
原因是在数据库内部没有安装对应的包
在这里插入图片描述
slave机上查询可以查到
在这里插入图片描述
关闭IO线程
在这里插入图片描述
关闭后在主机存在十秒超时,说明半同步成功
在这里插入图片描述

四、MySQL组复制

关闭mysql,然后删除原有数据
在这里插入图片描述
更新配置
在这里插入图片描述
在这里插入图片描述
重新进行初始化
在这里插入图片描述
初始化后,进入mysql,改密码
在这里插入图片描述
为了保证数据的一致性,后面要建立在数据建立用到的用户,所以先把日志功能关闭
配置
在这里插入图片描述
配置完成后,会保存在performance中,可在该数据库中查看
在这里插入图片描述
查看已有信息后,针对主机名进行ip解析(三台都做)
在这里插入图片描述
设定完毕后,组设定完成,此时需要把另两台添加进来
在这里插入图片描述
复制完初始化启动
在这里插入图片描述
重复之前操作,操作完成后查询
在这里插入图片描述
30同理 最后查看
在这里插入图片描述
此时,三台完成组复制功能
在这里插入图片描述在这里插入图片描述
在30建的数据库,在20也可以查询到
在这里插入图片描述
30建立的表,20也可以查询到
在这里插入图片描述
同理,20上插入数据。30也可以查到
在这里插入图片描述
在这里插入图片描述
10也同理
在这里插入图片描述
但是,如果有一台机器挂了,再开启,不会自动进入组中
此时把20挂了
在这里插入图片描述
重启后再查询
在这里插入图片描述
为什么呢?因为在配置中,参数已经写入,开启不会自动激活组复制目录中
在这里插入图片描述
那如何解决呢?
查看20状态,是offline
在这里插入图片描述
打开就可以了
在这里插入图片描述

五、MySQL路由

在这里插入图片描述
在这里插入图片描述
30设定的是lee,lee
在这里插入图片描述
查询是哪一台服务器
在这里插入图片描述

在这里插入图片描述

六、MHA

将压缩包解压
在这里插入图片描述
mha与其他主机之间实现免密认证
在这里插入图片描述
在这里插入图片描述
20、30相同,然后做本地ip解析
在这里插入图片描述
将数据库信息清除,初始化恢复一主两从
master开半同步
在这里插入图片描述
slave完成相关配置
在这里插入图片描述
安装mha的rpm包
在这里插入图片描述
然后把node包发送给三台机器,进行安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置mha环境

在这里插入图片描述
建立目录
将安装包解压到对应目录下
在这里插入图片描述
在这里插入图片描述
将安装包安装在本地,然后进入对应文件app1.cnf进行编辑
但目前并不能远程登录,所以要在设备上设置超级用户
在这里插入图片描述
在master上做了,其他两台也可以登录。
在这里插入图片描述
mha配置内容
在这里插入图片描述
连接10配置不通,换20检测
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二个 -s后网络地址不应该是20 否则会被认为是双主,应该是一个下面所没有的ip地址
检测是否进行免密登录
在这里插入图片描述
原因是目前只有mha机可以对其他机器进行免密登录,三台机器本身不行。
解决方法:
将做了ssh的mha机私钥发送给其他主机
在这里插入图片描述
在这里插入图片描述
此时再进行网络检测,成功。
在这里插入图片描述
检测主从复制情况,成功。
在这里插入图片描述
在这里插入图片描述
添加mysql主从复制中负责认证的用户
ssh检测
在这里插入图片描述
配置检测
在这里插入图片描述
MHA故障切换
在这里插入图片描述

标签: mysql adb 数据库

本文转载自: https://blog.csdn.net/weixin_65846252/article/details/141747556
版权归原作者 GeQian. 所有, 如有侵权,请联系我们删除。

“MySQL”的评论:

还没有评论