Tengo mi esclavo configurado para no replicar la base de datos 'mysql' como se describe en este 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
Ahora, si voy al servidor MASTER y emito un GRANT
y FLUSH PRIVILEGES
:
GRANT SELECT ON *.* TO `foo`@`localhost` IDENTIFIED BY 'bar';
FLUSH PRIVILEGES;
Luego vuelvo al servidor SLAVE y emito:
SHOW GRANTS FOR `foo`@`localhost`;
y recibe la respuesta:
+-------------------------------------------------------------------------------------------------------------+
| Grants for foo@localhost |
+-------------------------------------------------------------------------------------------------------------+
| GRANT SELECT ON *.* TO 'foo'@'localhost' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' |
+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
¿Cómo puedo evitar que el esclavo repita los cambios en la base de datos mysql? Pensé que 'replicate_ignore_db' habría sido suficiente.
fuente
_do_
y_ignore_
cláusulas. Se pone complicado.El problema con la respuesta de Derek Downey en esta publicación es que siempre funcionará de la misma manera (activado o desactivado).
Si se encuentra en una situación en la que desea que se repitan la mayoría de las subvenciones, pero no esta, o si no desea devolver mysql (necesario para cargar el archivo my.conf modificado), puede hacerlo de esta manera:
Recuerde que la configuración de la última línea
sql_log_bin = 1
es muy importante porque sin ella no replicará nada.fuente