Description:
MySQL Replication has a number of configuration parameters that do not work like others. Theses are:
replicate-do-db
replicate-ignore-db
replicate-do-table
replicate-ignore-table
replicate-rewrite-db
replicate-wild-do-table
replicate-wild-ignore-table
If one of these parameters is set multiple times in the configuration file then all of the database/table names are added to the list (rather than just the last assignment overwriting the previous ones).
For example...
replicate-do-db=test
replicate-do-db=clusterdb
... results in the tables test and clusterdb being replicated to the slave.
An alternative to this might have been for the server to allow:
replicate-do-db=test,clusterdb
but that wouldn't work as database (and table) names are allowed to include ",". In fact that setting would result in only the table called `test,clusterdb` being replicated to the slave.
There is no way to set these parameters to hold more than one database/table name when using MCM and so this would rule MCM out of any Cluster deployment which made non-simple use of these replication parameters.
How to repeat:
From mcm, try setting one of these parameters to contain more than one name.
Suggested fix:
Extend the MCM CLI to allow multiple names against an individual parameter and then turn that into multiple rows in the configuration file. For example, for this MCM input...
mcm> set replicate-do-db:mysqld:51=test,replicate-do-db:mysqld:51+=clusterdb,replicate-do-db:mysqld:51+="cluster,db";
...
produce these lines in the my.cnf file...
replicate-do-db=test
replicate-do-db=clusterdb
replicate-do-db=cluster,db
... Note that this syntax is just a suggestion and not a requirement.