搭建mysql主从并编写监控主从状态脚本
要求:两台centos7虚拟机分为主和从
安装mysql
yum -y install mysql mysql-server
关闭防火墙
service iptables stop
setenforce 0
上面的主从都做。
修改主的配置文件
vi /etc/my.cnf
#添加
server-id=1
log-bin=mysqlbin
relay-log=relays
之后保存退出
重启mysql服务
service mysqld restart
主上登录mysql进行授权
mysql
grant all on *.* to pdh@'%' identified by '123';
flush privileges;
查看二进制日志
show master status;
修改从mysql
vi /etc/my.cnf
#添加
server-id=2
log-bin=mysqlbin
relay-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主从状态监控脚本!若主从状态异常,尝试恢复主从同步!
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 "同步异常,尝试修复同步!"
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 "修复失败!"
fi
fi