#夏日挑战赛#数据库的高可用配置(mysql) 原创 精华
【本文正在参加星光计划计划3.0–夏日挑战赛】
活动链接:https://ost.51cto.com/posts/13641
一、环境配置:
1、操作系统版本:CentOS7
2、MySQL版本:5.7.28
3、VIP(虚IP):10.0.0.140
4、机器列表及功能:
IP | hostname | server_id |
---|---|---|
10.0.0.158 | s142 | 142 |
10.0.0.159 | s143 | 143 |
10.0.0.160 | s144 | 144 |
二、搭建
1、在s142、s143、s144机器上安装mysql5.7
①下载mysql-5.7.28,URL: https://downloads.mysql.com/archives/community/ 我这里下载的是64位版本
②下载后文件为:mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
2. 卸载自带的mariadb和mysql
①检查是否安装了mariadb和mysql,有时候默认安装了
②如果没有,就可以安装mysql,如果有,需要先卸载(remove后为上面命令查询到的内容,全文件名,我这里没有,没法展示)
3.解压文件,修改目录名方便配置
4.在/usr/local/目录下创建到/opt/soft/mysql-5.7.28的软链接
5.添加mysql用户,修改mysql目录权限,并用此用户执行应用
6.拷贝配置文件,将mysql的配置文件拷贝为/etc/目录下的my.cnf,并修改配置文件
7.安装mysql,进入mysql目录执行以下命令
注:如果出现如下错误,说明需要安装依赖包:
① 安装autoconf依赖包:
②再次执行
出现以下信息,代表成功,要保存一下passwd
8.拷贝启动程序,将mysql的启动程序拷贝到/etc/init.d/目录下
9.安装完,启动mysql服务
注:如果出现如下错误
说明mysql-error.log不存在,手动去创建,并修改权限
出现SUCCESS,说明启动成功
10.配置环境变量,编辑/etc/profile,方便在任何地方用mysql命令
注:别忘记重新编译 /etc/profile
11.登录mysql,修改passwd
①首次登录没有passwd,提示输入passwd时,输入第7步安装时生成的passwd:p5j2jfX7am.h
②这里要先使用alter user重置passwd,不然会报错,我这里 修改mysql root用户passwd 为 111111 :
③ 至此本机登录passwd修改完成,若是想让其他机器访问,需要配置远程访问:
12.创建复制用户及复制配置
①在主节点(master)上配置复制用户:
②在从节点(slave)上执行主从复制命令:
注:
#master_log_file=‘master-bin.000001’,#5.6后不需要指定
#master_log_pos=189;
③启动主从复制
④查看主从复制信息
⑤说明主从复制成功,可以在主库中创建一个库,看看从库是否同步
13.在每台机器上安装yum源头及MHA依赖的perl包
如图安装成功:
1 4.配置ssh免密登录
①分别在s142/s143/s144机器上生成ssh秘钥:
②将各自公钥id_rsa.pub发送到另外两台机器,并追加到 ~/.ssh/authorized_keys中:
s142:
s143:
s144:
s142:
s143:
s144:
15.安装MHA
①分别在s142、s143、s144上下载node安装包并安装:
②在s142上安装manager
16.配置MHA Manager
①配置全局配置文件
新建 /etc/masterha_default.cnf (一定要是这个路径,不然后期masterha_check_ssh会提示未找到全局文件)
②配置主配置文件
新建/opt/soft/mha/app1/app1.cnf文件,并配置如下信息:
③配置VIP切换
为了防止脑裂发生,推荐生产环境采用脚本的方式来管理虚拟 ip,而不是使用 keepalived来完成。
④配置VIP脚本
⑤.配置报警邮件脚本
首先配置邮件发送设置信息
#mail邮件发送程序,需要先配置好发送这信息
编写邮件发送脚本:
⑥将脚本赋予可执行权限
17.验证MHA配置信息是否正常
① 检查ssh配置:
成功!!!
②(在所有机器执行)
③检查主从复制情况:
健康!!!
18.在master节点上绑定VIP,只需绑定一次,后续会随主备切换而自动切换
①如过遇到问题,需手动删除,可执行如下命令:
②可以查看绑定VIP是否成功:
说明绑定成功!
19.在MHA的manager节点上启动MHA管理进程
&命令参数:
–remove_dead_master_conf 该参数代表当发生主从切换后,老的主库的ip将会从配置文件中移除。
–manger_log 日志存放位置
观察manager.log日志,查看是否有成功,一般最后打印如下日志,说明成功:
20.查看MHA状态
说明MHA正在运行中,主节点是s142
21.停止MHA管理进程
manager.log日志会打印终止日志:
22.手动进行主备切换(在进行手动切换前要先停值manager进程)
说明切换成功!
ennnn
学到了学到了
能帮助大家就好