一、简介

在上一篇的主从复制中:http://www.cnblogs.com/lay2017/p/9043985.html

我们了解到,mysql通过master写日志,slave读取并执行日志内容从而达到slave数据与master的一致。那么基于这个原理,我们可以实现两台master的复制功能。

大体如下:

1、两台master都开启log-bin写入日志

2、ID去重复

3、配置要复制的表

4、两台master分别向赋予replication slave从机复制权限;

5、分别开启复制

二、两台master分别开启主机日志

分别进入两台master机器,修复my.cnf文件(vim /etc/my.cnf),添加如下内容

# 双主配置
# 日志文件名称
log-bin=master-bin
# 唯一标识符一般为机器的IP尾号
server-id=144
# ID去重复配置
auto_increment_increment=几台机器就配几
auto_increment_offset=按顺序即可,例如(第一台:1;第二台:2)
# 设置双主复制的数据库
replicate-do-db=数据库名称

三、分别向对方赋予复制权限

在两台机器上分别执行

mysql>grant replication slave on *.* to '给对方登录的用户名'@'对方的IP地址' identified by '给对方登录的密码';

注意:这里是*.*,只能配置所有数据库因为replication slave权限只能作用于全局数据库,也就是为什么我们第二步要在配置文件里面配置允许复制的数据库名称

四、分别将主机指向对方

1)通过:mysql>show master status; 查看对方的日志文件名称和地址

+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000003 | 407 | | | |
+-------------------+----------+--------------+------------------+-------------------+

2)通过以下命令配置主机指向:

CHANGE MASTER TO

MASTER_HOST='对方的IP',

MASTER_USER='用户名',

MASTER_PASSWORD='密码',

MASTER_LOG_FILE='日志文件名',

MASTER_LOG_POS=日志地址;

五、开启复制

start slave;

注意:在做测试的时候最好先清空数据库,如果有配置过主从复制的情况,也最好先重置以下master和slave,重置命令如下:

mysql>reset master;
mysql>reset slave;

五、查看状态

分别在两台机器上执行

mysql>show slave status\G;

如果没有问题的话,你会看到类似如下的内容:

......
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
......

注意:两个线程都需要是Yes的状态,才表示复制开启成功

以上双主复制配置

参考文章:

https://www.cnblogs.com/phpstudy2015-6/p/6485819.html

https://www.cnblogs.com/tianshupei88/p/5075367.html

linux系统mysql主主复制(双主复制)的更多相关文章

  1. MySQL Replication, 主从和双主配置

    MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...

  2. nginx+keepalived 简单实现主备和双主模式

    准备nginx和keepalived 安装nginx(自行安装) yum install nginx 安装keepalived(安装包安装总报错,yum安装能好一点) yum install keep ...

  3. [分享]运维分享一一阿里云linux系统mysql密码修改脚本

    [分享]运维分享一一阿里云linux系统mysql密码修改脚本       大象吃豆子 级别: 小白 发帖 12 云币 27 加关注 写私信   只看楼主 更多操作楼主  发表于: 2014-09-3 ...

  4. linux系统mysql密码修改脚本

    编写了一个适用于阿里云linux系统 mysql密码修改脚本,使用阿里云提供的一键安装包配置后,如果account.log文件删除,并且忘记mysql密码时,可以通过脚本来重置mysql密码. 附:一 ...

  5. mysql传统主从、双主复制+keepalived配置步骤

    mysql主从.主主复制(双主复制)配置步骤 一:MySQL复制: MySQL复制简介: 将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服 ...

  6. mysql数据库之主从复制+双主--MMM

    mysql复制:在主数据库中,前端用户每执行一个写操作/语句,都会在二进制日志中保存一个事件,把这个事件从mysql的服务器中3306端口发送给从服务器,从服务器把这个事件接受下来,接受下来先保存在本 ...

  7. MySQL自动化安装(双主多从读写分离)

    shell #!/bin/bash # Create by # version 1.0 # // # # check out lockfile whether or not exist IsInput ...

  8. haproxy+keepalived主备与双主模式配置

    Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...

  9. Linux系统——MySQL基础(三)

    ### MySQL主从复制实践#### 主从复制实践准备(1)主从复制数据库实战环境准备MySQL主从复制实践对环境的要求比较简单,可以是单机单数据库多实例的环境,也可以是两台服务器,每个机器一个独立 ...

随机推荐

  1. python之爬虫--番外篇(一)进程,线程的初步了解

    整理这番外篇的原因是希望能够让爬虫的朋友更加理解这块内容,因为爬虫爬取数据可能很简单,但是如何高效持久的爬,利用进程,线程,以及异步IO,其实很多人和我一样,故整理此系列番外篇 一.进程 程序并不能单 ...

  2. 标题title出现不规则背景

    Html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  3. (1)python的基础认知

    Python程序员的信仰:人生苦短,我用python! (一)python的发展史 1989年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido).为了打发圣诞节假 ...

  4. kali linux之拒绝服务攻击工具

    hping3 几乎可以定制发送任何TCP/IP数据包,用于测试FW,端口扫描,性能测试 -c - 计数包计数  -i - interval wait(uX表示X微秒,例如-i u1000)       ...

  5. The server of Nginx(二)——Nginx基本功能配置

    一.Nginx访问控制 (1)基于授权的访问控制 Nginx于Apache一样,可以实现基于用户授权的访问控制,当客户端要访问相应网站或者目录时要求输入用户名密码才能正常访问,配置步骤与Apache基 ...

  6. Nginx反向代理与负载简单实现

    反向代理 1.proxy_pass 通过反向代理把请求转发到百度 2.proxy_pass 既可以是ip地址,也可以是域名,同时还可以指定端口 3.proxy_pass 指定的地址携带了URI,如果前 ...

  7. 关于云主机Thinkphp框架Session跨页失效的问题

    在网站部署到云主机之后,前台一直能够正常显示,后台确登录不上去,验证码也无法显示,研究半天,才确定是Session跨页传递失效的问题.找网上各种解决方法,都是关于Php.ini文件的设置,可又解决不了 ...

  8. python学习,day3:集合的学习

    集合天生去重,另外集合非常便于两组数字的取交集,并集等计算 # coding=utf-8 # Author: RyAn Bi list_1 =[1,2,3,4,5,6,7] list_1 =set(l ...

  9. Vivado 的IP:Global 和 Out-Of-Context选项问题

    在Vivado定制IP的时候,或者在IP Catalog中双击一个IP,不论该IP是我们自己添加到工程的自定义IP,还是Vivado自己带的IP,选择"Customize IP"后 ...

  10. Python——制作模块

    步骤一:创建包 步骤二:编辑示例模块代码 __init__调用: 步骤三:创建setup.py from distutils.core import setup setup(name="pa ...