mysqldump –master-data 参数

master-data参数在建立slave数据库的时候会经常用到,因为这是一个比较好用的参数,默认值为1,默认情况下,会包含change master to,这个语句包含file和position的记录始位置。master-data=2的时候,在mysqldump出来的文件包含CHANGE MASTER TO这个语句,处于被注释状态。

# mysqldump -uroot test --single-transaction --master-data=2 >master-data.sql

过滤出change master to信息

# grep -i "change master to" master-data.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=107;

然后slave从库执行

mysql>change master to master_host='xx.xx.xx.xx',
master_user='repl',
master_password='repl',
master_port=3306,
master_log_file='mysql-bin.000012',
master_log_pos=107;

然后

mysql>start slave

查看slave状态

mysql>show slave status;

需要注意的是:如果之前配置过服务器链接和密码,从服务器不用reset slave,直接

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=107;

即可。