MySQL数据同步 - 主从同步MS和双主同步MM MySQL

Cool.Cat 2014-12-23 1811

 【创建复制用户】

GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'repl_user'@'对方的IP地址' IDENTIFIED BY 'repl_pass';
FLUSH PRIVILEGES;


最好是在主从上都创建一致的用户,这样以后MS也可以切换成MM


【主库/从库my.ini】

server-id=99 
replicate_wild_do_table=fish.% 
log-bin=D:\MySQL\MySQL_Replication\mysql-bin-fish 
log_bin_trust_function_creators=1 
log_slave_updates=1 
sync_binlog=1 
# 包最大为64M 
max_allowed_packet=67108864


执行以下命令,并记录下log-bin的FilePosition

SHOW MASTER STATUS;


【从库my.ini】

#slave_skip_errors=1062,1053 

relay_log=D:\MySQL\MySQL_Replication\mysql-realy-bin-fish 

# 主从切换时,read_only要改为0 
read_only=1 

slave-net-timeout=60 
skip_slave_start=1 

# 包最大为64M 
slave_max_allowed_packet=67108864


【从库】
执行:

CHANGE MASTER TO MASTER_HOST='Master的IP', MASTER_PORT=Master的MySQL端口, MASTER_USER='同步帐号', MASTER_PASSWORD='同步密码', MASTER_LOG_FILE='Master的log-bin-File', MASTER_LOG_POS=Master的log-bin-Position;
START SLAVE;


其他命令:

SHOW MASTER STATUS;
SHOW SLAVE STATUS;
SHOW SLAVE HOSTS; SHOW BINLOG EVENTs;
SHOW FULL PROCESSLIST;


如果上线后还要再增加Slave,并且主库数据量不大的情况下,可以锁表后dump数据到新的从库执行以上步骤:

FLUSH TABLES WITH READ LOCK;
dump data ...
UNLOCK TABLES;

 

replication


【查看同步状态】
在slave上控制台执行SHOW SLAVE STATUS\G;显示界面如上图。
1=Master主机当前产生的日志文件;
2=Slave从机已经获取到的Master日志文件;
3=Master主机当前产生数据的节点坐标;
4=Slave从机当前同步到Master日志的节点坐标。


如果1与2对应一致,3与4对应一致则说明当前MySQL主从同步正常;

最新回复 (0)
返回
发新帖
X