一、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故障切换
版权归原作者 GeQian. 所有, 如有侵权,请联系我们删除。