patternsqlMinor
Mysql replication and ignore tables
Viewed 0 times
ignoretablesreplicationmysqland
Problem
When setting up master/slave replication in Mysql, do you then need to ignore any tables in
This is what I'm doing...
my.cnf
/etc/mysql/my.cnf or should replicate_wild_ignore_table be leaved out under normal circumstances?This is what I'm doing...
my.cnf
replicate_wild_ignore_table = mysql.%,information_schema.%,phpmyadmin.%Solution
Please change the directive to one of the following:
or
mysql database
No need to do mysql. Why? Doing
This will get by
This will get caught by
If you want to keep
This will prevent the SQL from being recorded in the master's binary logs. Consequently, all SQL executed in the DB Session after
information_schema database
As far as the information_schema database, mysqld uses it to monitor database metadata. Each is unique to the MySQL instance. They never replicate intrinsically because you have the option to keep different table on Master and Slave. If the
would be impossible for Slaves to handle.
SUMMARY
Doing
or
should be all you need. Notwithstanding, make sure any SQL that prepends phpmyadmin to all it table names may still slide by if the default database is not
replicate_wild_ignore_table=phpmyadmin.%or
replicate_ignore_db=phpmyadmin.%mysql database
No need to do mysql. Why? Doing
GRANT and REVOKE commands will bypass replicate_wild_ignore_table=mysql.% because the SQL does not explicitly mention mysql schema tables.This will get by
replicate_wild_ignore_table=mysql.%:GRANT ALL PRIVILEGES ON *.* to rolando@locahost;This will get caught by
replicate_wild_ignore_table=mysql.%:INSERT INTO mysql.user VALUES (...);If you want to keep
replicate_wild_ignore_table=mysql.%, I suggest the following:SET sql_log_bin = 0; INSERT INTO mysql.user VALUES (...);This will prevent the SQL from being recorded in the master's binary logs. Consequently, all SQL executed in the DB Session after
SET sql_log_bin = 0; will not replicate.information_schema database
As far as the information_schema database, mysqld uses it to monitor database metadata. Each is unique to the MySQL instance. They never replicate intrinsically because you have the option to keep different table on Master and Slave. If the
information_schema was replicated, then creating replication schemes such as- using the BLACKHOLE storage engine for Star Topologies
- using an all-InnoDB Master and an all-MyISAM slave
would be impossible for Slaves to handle.
SUMMARY
Doing
replicate_wild_ignore_table=phpmyadmin.%or
replicate_ignore_db=phpmyadmin.%should be all you need. Notwithstanding, make sure any SQL that prepends phpmyadmin to all it table names may still slide by if the default database is not
phpmyadmin.Code Snippets
replicate_wild_ignore_table=phpmyadmin.%replicate_ignore_db=phpmyadmin.%GRANT ALL PRIVILEGES ON *.* to rolando@locahost;INSERT INTO mysql.user VALUES (...);SET sql_log_bin = 0; INSERT INTO mysql.user VALUES (...);Context
StackExchange Database Administrators Q#28551, answer score: 2
Revisions (0)
No revisions yet.