问题产生的原因:主库从库设置了参数replicate_do_db 为库main,后期应用又在主库新创建了数据库为middle,未更改此参数设置导致从库无法同步数据库middle。
解决方法:
一..在主库备份要同步的数据库middle:
/usr/local/mysql/bin/mysqldump -uroot -proot -S /tmp/mysql3307.sock --single-transaction --master-data=2 -B middle >middle.sql
二.将备份middle.sql传输到从库。
在从库执行:
1.source middle.sql(在从库恢复数据库middle)
2.stop slave sql_thread;
3.CHANGE REPLICATION FILTER REPLICATE_DO_DB = (main,middle);
4.start slave sql_thread;
三.为了以后重启也能生效,将参数Replicate_Do_DB以及指定的需要主从同步的数据库写在主从的配置文件中。
操作前建议阅读官档:https://dev.mysql.com/doc/refman/5.7/en/change-replication-filter.html