MySQL 同步配置


假设要同步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 < test.`date +%Y%m%d`.sql

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的主从同步。

相关内容