vlambda博客
学习文章列表

搭建mysql主从并编写监控主从状态脚本

要求:两台centos7虚拟机分为主和从

安装mysql

yum -y install mysql mysql-server

关闭防火墙

service iptables stopsetenforce 0

上面的主从都做。


修改的配置文件

vi /etc/my.cnf#添加server-id=1log-bin=mysqlbinrelay-log=relays

之后保存退出

重启mysql服务

service mysqld restart

主上登录mysql进行授权

mysqlgrant all on *.* to pdh@'%' identified by '123';flush privileges;

查看二进制日志

show master status;


修改mysql

vi /etc/my.cnf#添加server-id=2log-bin=mysqlbinrelay-log=relays

之后保存退出

重启mysql服务

service mysqld restart


登录mysql进行同步配置

mysql
MariaDB [(none)]> change master to -> master_host='主mysql的IP地址', -> master_user='pdh', -> master_password='123', -> master_log_file='主上面的二进制名称', -> master_log_pos=主上二进制位置信息;

开启同步

start slave;

查看同步是否成功

show slave status \G;

出现双yes则成功。


编写监控MySQL主从状态监控脚本!若主从状态异常,尝试恢复主从同步!

#!/bin/bashIO=$(mysql -e "show slave status \G;" | grep 'Slave_IO_Running'| awk '{print $2}')SQL=$(mysql -e "show slave status \G;" | grep 'Slave_SQL_Running'| awk '{print $2}')
if [ $IO = $SQL -a $IO = 'Yes' ];then echo "同步正常"else echo "同步异常,尝试修复同步!" mysql -e 'stop slave;set global sql_slave_skip_counter=1;start slave;' IO=$(mysql -e "show slave status \G;" | grep 'Slave_IO_Running'| awk '{print $2}') SQL=$(mysql -e "show slave status \G;" | grep 'Slave_SQL_Running'| awk '{print $2}') if [ $IO = $SQL -a $IO = 'Yes' ];then echo "恢复正常!" else echo "修复失败!" fifi