Description:
I recently encountered the following issue while using Fitelr. I configured the following in my cnf file:
replicate-wild-ignore-table=tt.%,phpmyadmin.%
Executing show slave status yields the following output:
show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: ####
Master_User: ####
Master_Port: ####
Connect_Retry: 60
Master_Log_File: mysql-bin.000081
Read_Master_Log_Pos: 197
Relay_Log_File: mysql-relay-bin.000140
Relay_Log_Pos: 429
Relay_Master_Log_File: mysql-bin.000081
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table: tt.%,phpmyadmin.%
It appears that the filter has been successfully configured, just like using CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE, but it actually hasn't taken effect.
I reviewed the code and found that using replicate-wild-ignore-table doesn't allow you to configure multiple filters at once, but the documentation doesn't indicate this.
I reviewed the documentation for all filter options at https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#option_mysqld_rep...
and found the following description for --replicate-ignore-db:
To specify more than one database to ignore, use this option multiple times, once for each database. Because database names can contain commas, if you supply a comma-separated list, it is treated as the name of a single database.
Unfortunately, this is not mentioned in the other options, which is very confusing for users.
How to repeat:
see the document
https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#option_mysqld_rep....
Suggested fix:
Add the comment similar to --replicate-ignore-db mentioned above.