要求:两台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进行同步配置
mysqlMariaDB [(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