双机热备配置

来源:互联网 发布:淘宝店转让平台 编辑:程序博客网 时间:2024/05/01 08:43

******************************************************************************************
*  硬件环境
******************************************************************************************
  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;

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 梦幻西游手游金币兑换上限了怎么办 手机放裤子口袋里易拔出怎么办 两个月宝宝拉肚子怎么办吃纯母乳 花王泡沫染停留时间太久怎么办 ps右下角的图层图标隐藏了怎么办 压缩包文件太大微信无法传送怎么办 一寸照片的尺寸在ps中怎么办 遇到尖酸刻薄爱数落人的领导怎么办 初中一年级的学生就不想读书怎么办 电脑上所有文件都变得很大怎么办 小孩子手被门缝夹肿了怎么办 阳台挂衣服的单杆掉下来了怎么办 九个月婴儿受凉声音变沙哑怎么办 以汉字为主题的手抄报怎么办 用惯了笔画打字打不来拼音怎么办 老条石头给淤泥弄黑怎么办 新买的沙发垫子味很大怎么办 电脑表格中删去多余框线怎么办 农村教学点招不到学生老师怎么办 wps卡死了打的东西没保存怎么办 华为手机浏览器边框颜色变了怎么办 打印机打出来的字两边少怎么办 wps表格分页时表格断了怎么办 word里的表格一页放不下怎么办 表格上红色的字不能删除怎么办 渐变区的选择框变得很大怎么办 用乐秀编辑短片后两边有边框怎么办 安卓手机相机图标没有了怎么办 三星s6不充电就死机了怎么办 三星s7通话感应器不管用了怎么办 卡贴苹果8p一直跳激活怎么办? 宝宝添了小狗添过的袋子怎么办 猫咪卡在屋顶的缝隙里怎么办 大臂的图案纹小了怎么办 双面板已经贴片还要插件后焊怎么办 黑板摔在地上有木头屑怎么办 白衣服蓝袖子漂花了怎么办 白衣服泡了一夜袖子发黄怎么办 小孩的胳膊肘关节处摔断开了怎么办 生完孩子以后奶头总有脏东西怎么办 月经有黑乎乎的脏东西下不来怎么办