摘自:
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 互为主从同步所有数据库,包括新建的数据库
两个数据库配置中均不设置上述四项

mysql互为主从的更多相关文章

  1. mysql互为主从实战设置详解及自动化备份(Centos7.2)

    mysql互为主从实战设置详解(Centos7.2) 第一步:mysql配置  my.cnf配置 服务器1 (10.89.10.90) [mysqld]  server-id=1  log-bin=/ ...

  2. Keepalived与MySQL互为主从自动切换配置

    为解决Mysql数据库单点问题,实现两台MySQL数据库互为主备,双向replication.当一Master出现问题,则将Slave切换为Master继续工作. 环境说明 系统版本:CentOS L ...

  3. KeepAlived+MySQL互为主从

    http://blog.csdn.net/socho/article/details/51804720 解决Master单点问题,两台mysql互为主备,双向replication.当一master挂 ...

  4. Docker配置mysql互为主从

    配置准备 两台机器 两台机器:A(193.168.10.101)  B(193.168.10.102) 做好ssh免密登录 mysql大版本需要一致,小版本可忽略 并且两台机器已经安装好了docker ...

  5. MySql互为主从配置文件及配置方法

    # Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 6 ...

  6. mysql互为主从(双主)配置

    环境: ubuntu18.04.2 mysql5.7.21 #创建mysql属组 groupadd mysql useradd -g mysql mysql #查看属组 tail /etc/passw ...

  7. Centos7源码安装mysql及读写分离,互为主从

       Linux服务器 -源码安装mysql 及读写分离,互为主从   一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...

  8. Mysql主从复制的配置(双机互为主从)

    目的: 让两台mysql服务器可以互为主从提供同步服务. 优点: 1. mysql的主从复制的主要优点是同步"备份", 在从机上的数据库就相当于一个(基本实时)备份库. 2. 在主 ...

  9. CentOS双机中Docker下安装Mysql并配置互为主从模式

    CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...

随机推荐

  1. django2 删除图片或其他

    首先从数据库中获取图片的名称,然后拼接图片的物理地址,最后就是删除. # 物理删除图片 d = os.path.dirname(os.path.dirname(os.path.abspath(__fi ...

  2. WebGL编程指南案例解析之平移和旋转的矩阵实现

    手写各种矩阵: //矩阵 var vShader = ` attribute vec4 a_Position; uniform mat4 u_xformMatrix; void main(){ gl_ ...

  3. 转:HTML5中的element.dataset

    使用HTML5中的 element.dataset 操作自定义 data-* 数据: 不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进 ...

  4. ASCII编码和Unicode编码的区别

    链接: 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了.Unicode标准也在不断发展,但最常用的是用两个字 ...

  5. Unity3D 发布APK安卓环境配置步骤、安装、教程(含Java/Android)(超全流程)

    Unity3D安卓环境配置运行 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  6. HihoCoder - 1794:拼三角形 (状压DP)

    描述 给定 n 根木棍,第 i 根长度为 ai 现在你想用他们拼成尽量多的面积大于 0 的三角形,要求每根木棍只能被用一次,且不能折断 请你求出最多能拼出几个 输入 第一行一个正整数 n 第二行 n ...

  7. Java8函数式编程学习笔记(初探)

    编程语言的整个目的就在于操作值,要是按照历史上编程语言的传统,这些值被成为一等值,而编程语言中的其他结构也许有助于表示值的结构,但在程序执行期间不能传递,因此为二等值,比如方法和类等则是二等值,类可以 ...

  8. 第三周作业3——Bug Report

    作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957 要求1: 准备工作:利用老师提供的git 命令,批量pull所有 ...

  9. Anaconda+Tensorflow环境安装与配置

    转载请注明出处:http://www.cnblogs.com/willnote/p/6746499.html Anaconda安装 在清华大学 TUNA 镜像源选择对应的操作系统与所需的Python版 ...

  10. python 取整

    1.向下取整 向下取整直接用内建的 int() 函数即可: >>> a = 3.75 >>> int(a) 3 2.四舍五入 对数字进行四舍五入用 round()  ...