假设要同步test库中的数据,但不同步test.secret表。a.在rdb1上(即主db)执行备份操作并刷新日志。mysqldump --flush-logs -uro
假设要同步test库中的数据,但不同步test.secret表。
a.在rdb1上(即主db)执行备份操作并刷新日志。
mysqldump --flush-logs -uroot -p$pwd --default-character-set=gbk --database test > test.`date +%y%m%d`.sql
b.连接上rdb1.mysql数据库查询当前日志文件及日志位置信息。
mysql> show master status;
+------------------+-----------+--------------+------------------+
| file | position | binlog_do_db | binlog_ignore_db |
+------------------+-----------+--------------+------------------+
| mysql-bin.000156 | 98 | | |
+------------------+-----------+--------------+------------------+
1 row in set
c.在rdb1上为rdb2配置新用户授权
grant replication slave on *.* to backup@'rdb2 ip' identified by 'password';
d.将从rdb1上备份下来的完整数据通过scp上传到rdb2上并导入数据库。
mysql -h localhost -uroot -p$pwd test
e.导入完成后,设置同步参数
设置同步哪些库、同步哪些表、忽略哪些表。
例如,,在rdb2的mysql配置文件中配置:
replicate-do-db=test
replicate-ignore-table= test.secret
注意:要保证所有server-id不重复,rdb1的为1,rdb2的为2,其余的依次排列就行。
f.重启rdb2.mysql使配置生效,登录rdb2.mysql设置复制日志起点。
change master to master_host='rdb1 ip',master_user='backup', master_password='password',master_log_file=' mysql-bin.000156',master_log_pos=98;
执行start slave启动同步服务。
至此已完成rdb1到rdb2的主从同步。