【创建复制用户】
1 2 | GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'repl_user' @ '对方的IP地址' IDENTIFIED BY 'repl_pass' ;
FLUSH PRIVILEGES ;
|
最好是在主从上都创建一致的用户,这样以后MS也可以切换成MM
【主库/从库my.ini】
1 2 3 4 5 6 7 8 | 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的File和Position:
【从库my.ini】
1 2 3 4 5 6 7 8 9 10 11 12 | #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
|
【从库】
执行:
1 2 | 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;
|
其他命令:
1 2 3 4 | SHOW MASTER STATUS;
SHOW SLAVE STATUS;
SHOW SLAVE HOSTS; SHOW BINLOG EVENTs;
SHOW FULL PROCESSLIST;
|
如果上线后还要再增加Slave,并且主库数据量不大的情况下,可以锁表后dump数据到新的从库执行以上步骤:
1 2 3 | FLUSH TABLES WITH READ LOCK;
dump data ...
UNLOCK TABLES;
|

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