Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6050
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 31
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-06 19:55
文章分类

全部博文(3)

文章存档

2016年(1)

2015年(2)

我的朋友
最近访客

分类: Mysql/postgreSQL

2015-11-09 18:16:41

主从复制配置步骤:
一、主机(master)配置
1、修改MySQL配置文件my.cnf
    在[mysqld]标签下添加以下几行
        log-bin=master-bin            //启动二进制日志
        server-id=1                        //主标志的server-id
修改完重启mysql即可

2、登录mysql给从授权,允许从mysql能远程登录主mysql
    mysql>grant replication slave on *.* to 'USER'@'%' identified by 'PASSWD';       //USER为登录用户名,PASSWD为登录密码
    验证:从服务器上测试:mysql -u USER -pPASSWD -h MASTERIP                                         //能登录则授权成功,否则授权失败

3、导出sql文件至从机mysql上(若是刚装的mysql则不需要这一步)
    [root@localhost ~]#mysqldump -uUSER -pPASSWD --all-databases > alldatabases.sql

4、登录mysql,查询主数据库的状态,并记下File和Position的值
    mysql>show master status;

二、从机(slave)配置
1、同样需要修改MySQL配置文件my.cnf
    在[mysqld]标签下添加以下几行
        log-bin=slave-bin                //也同样需要启动二进制日志
        server-id=2                        //从标志的server-id,必须必master的server-id大
修改完重启mysql即可

2、导入sql文件
    [root@localhost ~]#mysqldump -u USER -pPASSWD --all-databases < alldatabases.sql        //alldatabases.sql从主上同步过来

3、关闭slave
    mysql>stop slave;
    mysql>reset slave;

4、从上配置主从
    mysql>change master to master_host='MASTERIP',master_user='USER',master_password='PASSWD',master_log_file='mysql-bin.000010' ,master_log_pos=257;
//MASTERIP:amster的ip、USER:授权时的用户、PASSWD:授权时的密码、file和pos是master的二进制起始文件和位置

5、show slave status\G
查看IO和SQL的状态都为YES就说明成功!


状态监测,如果服务器上了外网就可以以邮件方式发送
写个监控脚本,下面是我以s2、s4、s6三台从服务器的状态监测
#!/bin/bash

source /etc/profile
export LANG=zh_CN.UTF-8

Date=`date +"%y-%m-%d %H:%M:%S"`
#检测s2/s4/s6主从同步
for i in {2,4,6}
do
        ssh slave$i "/usr/bin/mysql -uroot -p123456 -S /r2/mysqldata/mysql.sock -e 'show slave status\G' |grep -i 'running'" > /root/netmonitor/check_mysql_slave.log
        Slave_IO=`cat /root/netmonitor/check_mysql_slave.log | grep IO | awk  '{print $2}'`
        Slave_SQL=`cat /root/netmonitor/check_mysql_slave.log | grep SQL | awk  '{print $2}'`
        if [ "$Slave_IO" = "Yes" -a "$Slave_SQL" = "Yes" ]
        then
                echo "Slave$i:MySQL主从同步正常"
        else
                echo "########$Date########" > /root/netmonitor/check_mysql_slave.log
                echo "Slave$i:MySQL主从同步异常,请检查!" >> /root/netmonitor/check_mysql_slave.log
                mail -r "发件人" -c "抄送人" -s "主题" "收件人" < /root/netmonitor/check_mysql_slave.log
        fi
done

阅读(367) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~