linux系统mysql主主复制(双主复制)
一、简介
在上一篇的主从复制中: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主主复制(双主复制)的更多相关文章
- MySQL Replication, 主从和双主配置
MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...
- nginx+keepalived 简单实现主备和双主模式
准备nginx和keepalived 安装nginx(自行安装) yum install nginx 安装keepalived(安装包安装总报错,yum安装能好一点) yum install keep ...
- [分享]运维分享一一阿里云linux系统mysql密码修改脚本
[分享]运维分享一一阿里云linux系统mysql密码修改脚本 大象吃豆子 级别: 小白 发帖 12 云币 27 加关注 写私信 只看楼主 更多操作楼主 发表于: 2014-09-3 ...
- linux系统mysql密码修改脚本
编写了一个适用于阿里云linux系统 mysql密码修改脚本,使用阿里云提供的一键安装包配置后,如果account.log文件删除,并且忘记mysql密码时,可以通过脚本来重置mysql密码. 附:一 ...
- mysql传统主从、双主复制+keepalived配置步骤
mysql主从.主主复制(双主复制)配置步骤 一:MySQL复制: MySQL复制简介: 将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服 ...
- mysql数据库之主从复制+双主--MMM
mysql复制:在主数据库中,前端用户每执行一个写操作/语句,都会在二进制日志中保存一个事件,把这个事件从mysql的服务器中3306端口发送给从服务器,从服务器把这个事件接受下来,接受下来先保存在本 ...
- MySQL自动化安装(双主多从读写分离)
shell #!/bin/bash # Create by # version 1.0 # // # # check out lockfile whether or not exist IsInput ...
- haproxy+keepalived主备与双主模式配置
Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...
- Linux系统——MySQL基础(三)
### MySQL主从复制实践#### 主从复制实践准备(1)主从复制数据库实战环境准备MySQL主从复制实践对环境的要求比较简单,可以是单机单数据库多实例的环境,也可以是两台服务器,每个机器一个独立 ...
随机推荐
- 8、insert、delete、update语句总结
insert常用语句 > insert into tb1 (name,age) values('tom',33); > insert into tb1 (name,age) values( ...
- [CF700E][JZOJ5558]Cool Slogan (后缀自动机+线段树)
题意翻译 给出一个长度为$n$的字符串$s[1]$,由小写字母组成.定义一个字符串序列$s[1....k]$,满足性质:$s[i]$在$s[i-1]$ $(i>=2)$中出现至少两次(位置可重叠 ...
- XMPP后台搭建
XMPP的环境搭建 1.下载MySQL 登录myql官网,点击页面下面的按钮 然后安装. 2.安装MySQL图形化管理工具mysql-workbench 同样进入mysql的官网, 下载 http:/ ...
- Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程
注意:如果是在ubuntu桌面版本上使用,图形化控制与ifupdown配置不兼容.如果使用ifupdown来配置,需要禁止使用图形化控制. 本文经过本人结合网络内容亲身实践,配置通了ifupdown ...
- RPC与本地调用的区别
RPC远程调用:一般可以跨平台通讯,采用http协议.因为http协议底层使用socket技术,只要你的语言支持socket技术,就可以相互进行通讯.比如:java语言开发的接口,http协议,然后让 ...
- iframe自适应高度,多层嵌套iframe自适应高度的解决方法
在页面无刷新更新方面,虽然现在的ajax很强悍,但是处理代码相对多点.想比之下,iframe就简单多了!处理iframe的自适应宽.高,会经常用到,网上整理了一份,写在这里备用: 单个iframe 高 ...
- centos的基本命令02
16:查看系统运行的进程 ps -ef 17:查看系统已开放的端口 netstat -tunlp 18:管道命令 ps -ef | grep tom # 查看系统中与tom相关的进程 19:grep过 ...
- 进阶篇:4.4)DFA设计指南:面向高速自动化装配设计
本章目标:更进一步,设计出符合高速自动化装配的零件. 1.前言 中国的人口红利时代正在慢慢地过去,这是事实.同时,机器换人与大自动化的时代也在到来. 在这个时代中,人工成本越来越高,零部件的装配和库存 ...
- idea 修改jar包源码的编码
项目中有些老的jar不是utf8打包的,中文显示乱码 打开的文件上直接右键, 修改只读jar的源码 自己写的文件可以在右下角修改编码,只读文件就要用上面的方法了
- @media响应式布局
@media可以根据屏幕尺寸调节布局 @media screen and (min-width:100px) and (max-width:200px){ div { color:red; } } 在 ...