双机热备配置

******************************************************************************************
*  硬件环境
******************************************************************************************
  mysql版本:mysql-5.0.67-win32
  A:主服务器/从服务器
  操作系统:Windows xp
  IP地址:10.26.12.31

  B:主服务器/从服务器
  操作系统:Windows xp
  的IP地址:10.26.12.28


******************************************************************************************
*  注意:要实现双机热备,则两台服务器上要同步的数据库的结构必须完全一致,即要求用相同的
*  造库语句。在执行后续操作前,需要在两个主机上都建好数据库和表,统一造表语句如下:
******************************************************************************************
  use test;
  create table bank(
                  id varchar(32) primary key not null,
    name varchar(50),
    password varchar(20),
                  count double,
    time timestamp
                  );
******************************************************************************************
*  配置过程:
******************************************************************************************
    1、对A服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
    server-id=1
    log-bin="C:/Program Files/MySQL/MySQL Server 5.0/log-bin.log"
    binlog-do-db = test              #需要同步的数据库
    binlog-ignore-db = mysql         #不需要同步的数据库,忽略掉
    master-host = 10.26.12.28        #同步的主机地址,这个服务器可以向本服务器更新数据
    master-user = back               #同步主机登陆本服务器的帐户
    master-password = back           #同步主机登陆本服务器的口令
    master-port = 3306               #默认端口号
    replicate-do-db = test           #同步的同步数据库,对该数据库的更新会反映到本服务器
    replicate-ignore-db = mysql      #不需要同步的数据库,忽略掉

  重启MySQL,创建一个MySQL帐号为同步专用

  GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* TO back@10.26.12.28 IDENTIFIED BY 'back';

    建立一个帐户back,并且只能允许从10.26.12.28这个地址上来登陆,密码是back

    在B服务器上做连接测试:

    mysql -h 10.26.12.31 -u back -p

  FLUSH PRIVILEGES;

  2、对B服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
    server-id=2
    log-bin="G:/Program Files/MySQL/MySQL Server 5.0/log-bin.log"
    binlog-do-db = test              #需要同步的数据库
    binlog-ignore-db = mysql         #不需要同步的数据库,忽略掉
    master-host = 10.26.12.31        #同步的主机地址,这个服务器可以向本服务器更新数据
    master-user = back               #同步主机登陆本服务器的帐户
    master-password = back           #同步主机登陆本服务器的口令
    master-port = 3306               #默认端口号
    replicate-do-db = test           #同步的同步数据库,对该数据库的更新会反映到本服务器
    replicate-ignore-db = mysql      #不需要同步的数据库,忽略掉

  重启MySQL,创建一个MySQL帐号为同步专用

  GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* TO back@10.26.12.31 IDENTIFIED BY 'back';

    建立一个帐户back,并且只能允许从10.26.12.31这个地址上来登陆,密码是back

    在B服务器上做连接测试:

    mysql -h 10.26.12.28 -u back -p

  FLUSH PRIVILEGES ;

  3、启动同步——A master/B slave

  在服务器A的MySQL命令符下:

  show master status;

  显示(当然这个是我机器的情况,你的不可能跟我一样哈,只是个例子):

  +---------------+----------+--------------+-----------------+
  | File          | Position | Binlog_Do_DB | Binlog_Ignore_DB|
  +---------------+----------+--------------+-----------------+
  | log-bin.000002| 98       | test         | mysql           |
  +---------------+----------+--------------+-----------------+

  在服务器B的MySQL命令符下:

  slave stop;

  CHANGE MASTER TO MASTER_LOG_FILE='log-bin.000002',MASTER_LOG_POS=98;

  slave start;

  用show slave status;查看从服务器的同步情况,主要看如下几项。

    +----------------------------------+-------------+-------------+-----------------+
    | Slave_IO_State                   | Master_Host | Master_User | Master_Log_File |
    +----------------------------------+-------------+-------------+-----------------+
    | Waiting for master to send event | 10.26.12.31 | back        | log-bin.000002  |
    +----------------------------------+-------------+-------------+-----------------+

    Slave_IO_State:Waiting for master to send event

  Slave_IO_Running: Yes

  Slave_SQL_Running: Yes

  如上所示,代表已经在同步,否则表示未能同步。

  4、启动同步——B master/A slave,实现双向同步

  在服务器A的MySQL命令符下:

  show master status;

  显示(当然这个是我机器的情况,你的不可能跟我一样哈,只是个例子):

  +---------------+----------+--------------+-----------------+
  | File          | Position | Binlog_Do_DB | Binlog_Ignore_DB|
  +---------------+----------+--------------+-----------------+
  | log-bin.000003| 498      | test         | mysql           |
  +---------------+----------+--------------+-----------------+

  在服务器B的MySQL命令符下:

  slave stop;

  CHANGE MASTER TO MASTER_LOG_FILE='log-bin.000003',MASTER_LOG_POS=498;

  slave start;

  用show slave status;查看从服务器的同步情况,主要看如下几项。

    +----------------------------------+-------------+-------------+-----------------+
    | Slave_IO_State                   | Master_Host | Master_User | Master_Log_File |
    +----------------------------------+-------------+-------------+-----------------+
    | Waiting for master to send event | 10.26.12.28 | back        | log-bin.000003  |
    +----------------------------------+-------------+-------------+-----------------+

    Slave_IO_State:Waiting for master to send event

  Slave_IO_Running: Yes

  Slave_SQL_Running: Yes

  如上所示,代表已经在同步,否则表示未能同步。


******************************************************************************************
*  show master status;可以用以下语句将其封装
******************************************************************************************
    锁定数据库:
    MySQL> FLUSH TABLES WITH READ LOCK;
    把数据库的锁定打开:
    UNLOCK TABLES;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值