J'ai mon esclave configuré pour ne pas répliquer la base de données 'mysql' comme décrit dans ce SHOW SLAVE STATUS\G;
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000001
Read_Master_Log_Pos: 1660
Relay_Log_File: mysql-relay-bin.000004
Relay_Log_Pos: 478
Relay_Master_Log_File: master-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
**Replicate_Ignore_DB: mysql**
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1660
Relay_Log_Space: 633
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Maintenant, si je vais sur le serveur MASTER et émets un GRANT
et FLUSH PRIVILEGES
:
GRANT SELECT ON *.* TO `foo`@`localhost` IDENTIFIED BY 'bar';
FLUSH PRIVILEGES;
Je retourne ensuite au serveur SLAVE et émets:
SHOW GRANTS FOR `foo`@`localhost`;
et recevez la réponse:
+-------------------------------------------------------------------------------------------------------------+
| Grants for foo@localhost |
+-------------------------------------------------------------------------------------------------------------+
| GRANT SELECT ON *.* TO 'foo'@'localhost' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' |
+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Comment puis-je empêcher l'esclave de répliquer les modifications de la base de données mysql? J'ai pensé que 'replicate_ignore_db' aurait suffi.
la source
_do_
et_ignore_
. Cela devient difficile.Le problème avec la réponse de Derek Downey sur ce post est qu'il fonctionnera toujours de la même manière (on ou off).
Si vous êtes dans une situation où vous souhaitez que la plupart des subventions soient répliquées mais pas celle-ci - ou si vous ne voulez pas rebondir mysql (nécessaire pour charger le fichier my.conf modifié), vous pouvez le faire de cette façon:
N'oubliez pas que ce paramètre de dernière ligne
sql_log_bin = 1
est très important car sans lui, vous ne reproduirez rien.la source