实现双主模型:
实现双主模型主要的两点
一是双方都打开二进制日志和中继日志,互设为主从
二是定义自动增长的时候的起始值和增长步长
auto-increment-increment=N 定义步长
auto-increment-offset=N s定义起始值
指定步长,应该为两个服务器设置成不同的,且不能使以后重复
mylab1
修改主配置文件/etc/my.cnflog_bin= 二进制日志开启
relay_log= 中继日志开启
server_id=1 服务器id 主从不能相同
auto-increment-increment=2
auto-increment-offset=1
为mylab2创建同步时的用户GRANTREPLICATION CLIENT,REPLICATION SLAVEON*.*to'username2'@'mylab2'IDENTIFIEDBY'password';
mylab2
修改主配置文件/etc/my.cnf
log_bin= 二进制日志
relay_log= 中继日志
server_id=10 主从不能相同
auto-increment-increment=2
auto-increment-offset=2
为mylab1创建同步时的用户mysql>GRANTREPLICATION CLIENT,REPLICATION SLAVEON*.*to'username1'@'mylab1'IDENTIFIEDBY'password'
假设A有数据库,B没有;
(1)先在A服务器上锁定读,做完全备份,记录二进制日志文件,以及此文件事件的pos位置;
(2)应该先关闭log-bin,(也应该先记录 SHOW MASTER STATUS)把备份的内容在B服务器导入一次,再开启log-bin;
然后互设为主从mylab1指定mysql2为主服务器:
CHANGE MASTER TOMASTER_HOST='mylab2', MASTER_PORT=3306,MASTER_USER='username1', MASTER_PASSWORD='password', MASTER_LOG_FILE=bin_log id', MASTER_LOG_POS=POSid;
mylab2指定mysql1为主服务器:
CHANGE MASTER TOMASTER_HOST='mylab1', MASTER_PORT=3306,MASTER_USER='username2', MASTER_PASSWORD='password', MASTER_LOG_FILE=bin_log id', MASTER_LOG_POS=POSid;
mylab1
mylab1