mysql主从的搭建+shell实现检测并邮件报警。
准备两台服务器关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
安装mysql
yum -y install mariadb mariadb-server
一台配置主
配置文件
vi /etc/my.cnf
server-id=1
log-bin=mysqlbin
保存退出然后重新启动mysql
systemctl restart mariadb
进入mysql并进行授权和查看二进制日志信息
mysql
mysql> grant all on . to tom@’%’ identified by ‘a’;
mysql> show master status;
一台配置从配置文件
vi /etc/my.cnf
server-id=2
relay-log=relays
退出保存并重启mysql
systemctl restart mariadb
登录mysql进行同步
mysql
mysql> stop slave;
mysql> change master to master_host=‘主的ip’,master_user=‘授权账号’,master_password=‘授权密码’,master_log_file=‘二进制日志’,master_log_pos=阶梯数;
启动同步
;mysql> start slave;
查看是否双yes
mysql> show slave status \G;
编写自动脚本进行邮件报警和任务定时
利用shell脚本检测MySQL主从并实现邮箱报警
安装mailx 并编辑mailx配置文件,修改接收报警邮件地址
yum -y install mailx
vim /etc/mail.rc
注册并登录163邮箱
进入设置
开启smtp
发送短信获取授权码
授权码获取成功
获取之后可在文件**/etc/mail.rc**中加入
set from=个人邮箱地址
set smtp=smtp.邮箱类型(例如:163/qq).com
set smtp-auth-user=个人邮箱地址
set smtp-auth-password=smtp授权码
set smtp-auth=login
开始编写shell脚本
vim mysql.sh
#!/bin/bash
mysql -e “show slave status \G;” > sql.log
num=cat sql.log | grep Yes | wc -l
if [ $num -eq 2 ];then
echo “状态为双yes,mysql主从正常”
else
echo “状态非双yes,触发报警”
echo “主从异常”|mail -s “MySQL” 163邮箱地址
fi
执行shell脚本
查看邮箱是否受到邮件