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主从复制实践对环境的要求比较简单,可以是单机单数据库多实例的环境,也可以是两台服务器,每个机器一个独立 ...
随机推荐
- C语言 算平均数
int main() { int number ; int sum = 0; int count = 0; do { scanf("%d", &number ); if( ...
- 1.IPtable基础命令总结
iptables概念 规则查询 #查看对应表中的所有规则 iptables -t 表名 -L #查看表的指定链中的规则 iptables -t 表名 -L 链名 #查看对应表中的所有规则, -v显示跟 ...
- jquery源码解析:jQuery工具方法when详解
我们先来看when方法是如何使用的: var cb = $.when(); //when方法也是返回一个延迟对象,源码是return deferred.promise();返回的延迟对象不能修改状 ...
- python3的enumerate函数
enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中.
- struts2的优缺点
Struts2框架10个优点:1.可以用任何POJO(存粹的java类)来接收表单输入.可以把POJO视为一个Action类 Action类:获得Form表单数据,并处理逻辑的类: DAO类:进行数据 ...
- 使用Avd 调试慢的解决方案
AVD 太慢了,不仅启动,而且运行慢.以致于要用手机去调.你觉得这样方便吗? 如果没有一个简单快速的开发调试环境,把时间都浪费在启动,调试及等待上,那是对生命的浪费. 必要条件: ...
- 2016级算法第五次上机-G.ModricWang的撒币游戏
1062 ModricWang的撒币游戏 思路 此题为2017年ACM-ICPC亚洲区域赛乌鲁木齐赛区的A题,现场94个队中有38个队做出此题.在这里作为满分以外的题,是为了让大家看一下外面一些题的风 ...
- &与&& ,|与||的区别
&&和||是短路运算符,&和|是非短路运算符 &&与& 区别:两者都表示“与”运算,但是&&运算符第一个表达式不成立的话,后面的表达式不 ...
- 让windows登陆界面显示administrator账户
如果windowsXP只有一个administrator账户,在开机登陆windows的欢迎界面,会出现这个账户名,点击,输入密码就可登陆到windows桌面: 如果新建了另一个管理员账户,在欢迎界面 ...
- Shiro源码解析-Session篇
上一篇Shiro源码解析-登录篇中提到了在登录验证成功后有对session的处理,但未详细分析,本文对此部分源码详细分析下. 1. 分析切入点:DefaultSecurityManger的login方 ...