Ao configurar a replicação mestre/escravo no Mysql, você precisa ignorar todas as tabelas /etc/mysql/my.cnf
ou deve replicate_wild_ignore_table
ser deixada de fora em circunstâncias normais?
Isto é o que estou fazendo...
meu.cnf
replicate_wild_ignore_table = mysql.%,information_schema.%,phpmyadmin.%
Altere a diretiva para uma das seguintes:
ou
banco de dados mysql
Não há necessidade de fazer mysql. Por quê? Fazendo
GRANT
eREVOKE
os comandos serão ignoradosreplicate_wild_ignore_table=mysql.%
porque o SQL não menciona explicitamente as tabelas de esquema mysql.Isso vai passar por
replicate_wild_ignore_table=mysql.%
:Isso será capturado por
replicate_wild_ignore_table=mysql.%
:Se você quiser manter
replicate_wild_ignore_table=mysql.%
, sugiro o seguinte:Isso impedirá que o SQL seja registrado nos logs binários do mestre. Consequentemente, todo o SQL executado na sessão do banco de dados posterior
SET sql_log_bin = 0;
não será replicado.banco de dados information_schema
No que diz respeito ao banco de dados information_schema, o mysqld o usa para monitorar os metadados do banco de dados. Cada um é exclusivo da instância do MySQL. Eles nunca replicam intrinsecamente porque você tem a opção de manter tabelas diferentes em Master e Slave. Se o
information_schema
foi replicado, a criação de esquemas de replicação, comoseria impossível para os escravos lidar.
RESUMO
Fazendo
ou
deve ser tudo que você precisa. Não obstante, certifique-se de que qualquer SQL que anexe phpmyadmin a todos os nomes de tabelas ainda possa deslizar se o banco de dados padrão não for
phpmyadmin
.Acho que tudo depende do motivo pelo qual você está replicando. Se você deseja uma cópia 1:1 estrita do seu servidor db, não precisa de nenhuma entrada ignore_table. Se você quiser apenas disponibilizar algum subconjunto de seus bancos de dados/tabelas, será necessário adicionar entradas para filtrá-los/excluí-los.
Mas, como você apontou no link incluído - isso cria um risco de interromper inadvertidamente a replicação. Como cada instrução binlog é copiada e executada no escravo de replicação, se encontrar uma referência que não foi especificamente tratada e a tabela referida não estiver disponível, ocorrerá um erro. Consertar isso geralmente é trivial, mas requer atenção.