zoukankan      html  css  js  c++  java
  • mysql互为主从

    摘自:
    http://flash520.blog.163.com/blog/static/3441447520101029114016823/

    A B 为两台MySQL服务器,均开启二进制日志,数据库版本 5.5.2

    一、服务器参数

    [A 服务器]
    server-id = 1
    binlog-do-db = test
    binlog-ignore-db = mysql
    replicate-do-db = test
    replicate-ignore-db = mysql
    master-host     =   192.168.1.100
    master-user     =   backup
    master-password =   123
    master-port     =  3306
    master-connect-retry = 10
    sync-binlog = 1

    [B 服务器]
    server-id = 2
    binlog-do-db = test
    binlog-ignore-db = mysql
    replicate-do-db = test
    replicate-ignore-db = mysql
    master-host     =   192.168.1.101
    master-user     =   backup
    master-password =   123
    master-port     =  3306
    master-connect-retry = 10
    sync-binlog = 1

    二、操作步骤

    # A B 服务器停止同步
    STOP SLAVE;

    # A B 服务器清空Master日志
    RESET MASTER;

    # A 服务器授权同步账户
    GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123';
    FLUSH PRIVILEGES;

    # A B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)
    FLUSH TABLES WITH READ LOCK;

    # 如果使用SSH,需要重新开启,复制数据库文件。
    tar -cvf /tmp/mysql-data.tar /usr/local/mysql/data
    tar -xvf /tmp/mysql-data.tar /usr/local/mysql/data

    # 查看 A 服务器主机状态(记录二进制开始文件,位置)
    SHOW MASTER STATUS;

    # B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)
    FLUSH TABLES WITH READ LOCK;

    # 修改 B 服务器配置
    CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='backup', MASTER_PASSWORD='123',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=107;

    # 开启 B 服务器同步进程
    START SLAVE;

    # 查看 B 服务器同步状态是否正常
    SHOW SLAVE STATUS;

    # 查看 B 服务器主机(记录二进制开始文件,位置)
    SHOW MASTER STATUS;

    # 修改 A 服务器配置
    CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='backup',MASTER_PASSWORD='123',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=107;

    # 开启 A 服务器同步进程
    START SLAVE;

    # 分别查看 A B 服务器同步状态,确定是否成功
    SHOW SLAVE STATUS;SHOW MASTER STATUS;

    # 解锁 A B 服务器
    UNLOCK TABLES;

    # 数据测试分别在 A B 服务器上创建表插入数据测试
    USE test;
    CREATE TABLE `test_aa` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `string` varchar(30) NOT NULL DEFAULT '0',
    `time` datetime NOT NULL DEFAULT '00-00-00 00:00:00',
    PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    INSERT INTO `test_log_1` VALUES ('', 'test_1', NOW());
    SELECT * FROM `test_log_1`;

    CREATE DATABASE `test_db_1` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    注意:
    1. 数据库目录下的master.info的内容会覆盖命令行或my.cnf中指定的部分选项,更改配置需删除master.info
    2. my.cnf中的master配置在MySQL 6.0以后会取消,官方建议使用动态的CHANGE MASTER
    3. 如果只指定ignore-db而不指定do-db。则创建数据库的操作也会同步。


    互为同步配置实例:
    1. A B 互为主从同步test, 不同步mysql:
    两个数据库配置中均设置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql

    2. A B 互为主从只同步test,不同步其他数据库,新创建的也不会同步
    两个数据库配置中均设置:binlog-do-db=test,replicate-do-db=test

    3. A B 互为主从不同步mysql, 同步其他数据库,譬如创建的新数据库也会同步
    两个数据库配置中均设置:binlog-ignore-db=mysql,replicate-ignore-db=mysql

    4. A B 互为主从同步所有数据库,包括新建的数据库
    两个数据库配置中均不设置上述四项

  • 相关阅读:
    js经典试题之数据类型
    js单行写一个评级组件
    Spring Cloud Gateway的全局异常处理
    spring cloud gateway 全局过滤器
    公司ES升级带来的坑怎么填?
    Sentinel: 分布式系统的流量防卫兵
    微信小程序之页面打开数量限制
    微信小程序登录那些事
    API数据加密框架monkey-api-encrypt
    微信小程序之启动页的重要性
  • 原文地址:https://www.cnblogs.com/voiphudong/p/3334078.html
Copyright © 2011-2022 走看看