实现MySQL数据库主主同步(自动互相同步数据)

实现MySQL数据库主主同步(自动互相同步数据)

最近有个需要,国内和国外分别开了两台mysql数据库,要求是数据实时同步,不管那边访问,数据都是一样的。

其实好几年前,做过一次MySQL的主主同步,都已经忘记怎么做了。这次做完,顺便记录一下。

前提服务器A的IP:1.1.1.1

服务器B的IP:2.2.2.2

数据库操作,务必提前备份好原始数据。两台服务器的MySQL数据,先同步一次。保证数据完全一致。停止mysql服务,防止有数据生成。互相授权1、进入服务器A的shell,给服务器B授权,授权账号为tongbu,密码为123456

代码语言:javascript复制Mysql>GRANT all privileges ON *.* TO tongbu@'2.2.2.2' IDENTIFIED BY '123456';2、进入服务器B的shell,给服务器A授权,授权账号为tongbu,密码为123456

代码语言:javascript复制Mysql>GRANT all privileges ON *.* TO tongbu@'1.1.1.1' IDENTIFIED BY '123456';数据库配置[my.cnf]1、进入服务器A,编辑my.cnf文件:vi /etc/my.cnf

2、在[mysqld]的配置项中增加如下代码:

代码语言:javascript复制server-id=1

log-bin=mysql-bin

binlog-do-db=xxx_data

replicate-do-db=xxx_data

auto_increment_increment = 2

auto_increment_offset = 13、进入服务器B,编辑my.cnf文件:vi /etc/my.cnf

4、在[mysqld]的配置项中增加如下代码:

代码语言:javascript复制server-id=2

log-bin=mysql-bin

binlog-do-db=xxx_data

replicate-do-db=xxx_data

auto_increment_increment = 2

auto_increment_offset = 2xxx_data即你要同步的库,若有多个,就多写几行。auto_increment_offset设置自增起始值。auto_increment_increment主键自增的步长,用于防止Master与Master之间出现主键冲突(重复),通常有多少台主服务器,设置为多少MySQL二进制日志名和偏移量服务器A、服务器B 分别执行mysql> show master status;得到File和Position。分别记录下来。

MySQL互相设置同步假设:

服务器A:File是mysql-bin.000009,Position是153

服务器B:File是mysql-bin.000010,Position是154

那么

服务器A执行:

代码语言:javascript复制Mysql> stop slave;代码语言:javascript复制CHANGE MASTER TO

MASTER_HOST='2.2.2.2',

MASTER_USER='tongbu',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000010',

MASTER_LOG_POS=154;代码语言:javascript复制Mysql> start slave;服务器B执行:

代码语言:javascript复制Mysql> stop slave;代码语言:javascript复制CHANGE MASTER TO

MASTER_HOST='1.1.1.1',

MASTER_USER='tongbu',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000009',

MASTER_LOG_POS=153;代码语言:javascript复制Mysql> start slave;重启MySQL重新启动MySQL:service mysqld restart

检查slave状态执行:Mysql> show slave status\G,如果其中显示两个Yes,即同步成功。可以测试数据同步效果。

代码语言:javascript复制......

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

......

相关推荐

企业做账需要哪些账本?必备账本清单及管理方案
必发365手机网页版官网

企业做账需要哪些账本?必备账本清单及管理方案

📅 02-21 👁️ 4763
古剑奇谭哪个频道播出
BT365账户验证需要多久

古剑奇谭哪个频道播出

📅 10-19 👁️ 5748
免费算命,生辰八字算命,周易占卜,姓名测试打分
BT365账户验证需要多久

免费算命,生辰八字算命,周易占卜,姓名测试打分

📅 06-20 👁️ 7160