由于公司的业务需求,需要网通和电信的数据同步,就做了个MySQL的双向同步,记下过程,以后用得到再翻出来,也贴出来供大家参考。
一、准备服务器
由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。
本文中,我们假设主服务器(以下简称Master)和从服务器(以下简称Slave)的版本都是5.0.27,操作系统是RedHat Linux 9。
假设同步Master的主机名为:A(IP:192.168.0.1),Slave主机名为:B(IP:192.168.0.2),2个MySQL的basedir目录都是/usr/local/mysql,datadir都是:/var/lib/mysql。
二、设置同步服务器
1、设置同步Master
修改 my.cnf 文件,在
# Replication Master Server (default)
# binary logging is required for replication
添加如下内容:
log-bin=/var/log/mysql/updatelog
server-id = 1
binlog-do-db=test
binlog-ignore-db=mysql
重启MySQL,创建一个MySQL帐号为同步专用
GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* TO back@192.168.0.2 IDENTIFIED BY 'back' ;
FLUSH PRIVILEGES ;
2、设置同步Slave
修改my.cnf文件,添加
server-id = 2
master-host = 192.168.0.1
master-user = back
master-password = back
master-port = 3306
replicate-ignore-db=mysql
replicate-do-db=test
重启MySQL
3、启动同步
在主服务器A MySQL命令符下:
show master status;
显示(当然这个是我机器的情况,你的不可能跟我一样哈,只是个例子):
+------------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| updatelog.000028 | 313361 | test | mysql |
+------------------+----------+-------------------+------------------+
在从服务器A MySQL命令符下:
slave stop;
CHANGE MASTER TO MASTER_LOG_FILE='updatelog.000028',MASTER_LOG_POS=313361;
slave start;
用show slave status\G;看一下从服务器的同步情况
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是yes,那代表已经在同步
往表里面写点数据测试一下看是否同步成功,如果不成功,绝对不是你的RP问题,再检查一下操作步骤!
4、设置双向同步
修改B服务器的my.cnf,添加
log-bin=/var/log/mysql/updatelog
binlog-do-db=test
binlog-ignore-db=mysql
重启MySQL,创建一个MySQL帐号为同步专用
GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* TO back@192.168.0.1 IDENTIFIED BY 'back' ;
FLUSH PRIVILEGES ;
修改A服务器的my.cnf,添加
master-host = 192.168.0.2
master-user = back
master-password = back
master-port = 3306
replicate-ignore-db=mysql
replicate-do-db=test
重启MySQL
在主服务器B MySQL命令符下:
show master status;
+------------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| updatelog.000028 | 13753 | test | mysql |
+------------------+----------+-------------------+------------------+
在服务器A MySQL命令符下:
slave stop;
CHANGE MASTER TO MASTER_LOG_FILE='updatelog.000028',MASTER_LOG_POS=13753;
slave start;
其实也就是A->B单向同步的反向操作!双向同步,就这么简单啦!
分享到:
相关推荐
实现了mysql数据库的单向数据同步,和双向数据同步
通过mysql自带的数据同步机制,可以方便的实现mysql数据库的数据同步。如果需要实现双向同步,则从A-B配置单向同步后,再从B-A配置一遍即可。
拥有它,烦人的数据库同步将迎刃而解 mysql双向主主同步关键性文档
Mysql双机热备配置教程,mysql主从双向,单向同步,教程清晰。
windows下mysql双向同步备份实现方法以下的文章主要讲述的是在windows环境下实现MySQL数据库的主从同步备份的正确操作方案,我在一些相关的网站看见关于windows环境下实现MySQL数据库的主从同步备份的操作步骤描述,...
单向数据复制:将数据从一个MySQL群集复制到另一个MySQL群集。 双向数据复制:双向复制两个MySQL群集之间的数据。 分片与合并表的同步:将MySQL分片表与合并的表同步。 您可以指定源表和目标表之间的对应关系。 ...
mysql数据库支持单向,双向,链式级联,环状等不同业务场景的复制,一台服务器充当主服务器master,接收来自用户的更新,而一个或多个其他服务器充当从服务器slave,接收来自主服务器binlog文件的日志内容,解析出...
1.2.6 创建存放两个 mysql 实例的数据目录...............................................................11 1.2.7 创建两个 mysql 多实例的配置文件.............................................................
我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:如果数据库发生了宕机或者意外中断...使用双节点数据库,搭建单向或者双向的半同步复制。在5.7以后的版本中,由于losslessreplication、logical多线程复
8、支持单向同步、双向同步、增量备份、完全备份等各种文件同步与备份的方式。 9、支持多频率备份选择,能按月、按周、按日、按时、间隔或手动地启动任务。 10、智能的增量备份恢复功能,能够恢复出与每次执行时源...
mysql 集群方案介绍,建议使用pxc,因为弱一致性会有问题,比如说a节点数据库显示我购买成功,b 节点数据库显示没有成功,这就麻烦了,pxc 方案是在全部节点都写入成功之后才会告诉你成功,是可读可写双向同步的,...
8、支持单向同步、双向同步、增量备份、完全备份等各种文件同步与备份的方式。 9、支持多频率备份选择,能按月、按周、按日、按时、间隔或手动地启动任务。 10、智能的增量备份恢复功能,能够恢复出与每次执行时源...
8、支持单向同步、双向同步、增量备份、完全备份等各种文件同步与备份的方式。 9、支持多频率备份选择,能按月、按周、按日、按时、间隔或手动地启动任务。 10、智能的增量备份恢复功能,能够恢复出与每次...
同步SQL VSBD 任务同步 2 个不同的数据库系统任务记录您尝试同步两个异构数据库系统(MySQL、Postgresql)。 使用不同的方案(不同的表结构)并说明不同...每张表至少有 10 条数据记录 [4 分] 对多个表进行单向和双向更