mysql melhores práticas com replicação do mysql db (concede armazenamento)

3

existe uma prática recomendada para garantir que os privilégios não sejam replicados para servidores escravos mysql? O problema é que há usuários de manutenção na tabela mysql que possuem senhas diferentes em cada caixa. coisas como scripts de inicialização / desligamento usam essas tabelas. quando você replica de um mestre, ele altera a senha e quebra as coisas.

quais são as melhores práticas para garantir que o db mysql real (que contém concessões, usuários, hosts) não quebre devido à replicação?

você costuma replicar privilégios também para os escravos?

    
por imaginative 17.10.2009 / 03:55

3 respostas

2

Não use replicate-do-db e replicate-ignore-db , porque essas opções são perigosas. veja este artigo.

Use apenas a opção --replicate-wild-ignore-table=mysql.% .

Eu recomendo que você defina --replicate-wild-ignore-table=mysql.user - isso ignora somente a replicação de senhas globais e de senhas, enquanto as concessões em nível de tabela e coluna ainda são replicadas.

Você também pode usar SET SQL_LOG_BIN=0 para desabilitar as instruções de log da sessão atual, por exemplo. quando você criar um novo usuário ou alterar uma senha.

    
por 17.10.2009 / 18:32
2

A FAQ explica :

Start the server with the --replicate-wild-ignore-table=mysql.% option.

Você também pode usar isso como uma opção my.cnf .

Normalmente, nós replicamos GRANT s. porque muitas vezes queremos que os escravos se comportem como cópias idênticas de leitura do mestre. Desta forma, nossos aplicativos podem alternar facilmente entre os servidores de banco de dados para operações de RO. Você só precisa explicar isso ao desenvolver outros utilitários e prestar muita atenção ao que seu GRANT s está permitindo, especialmente com relação aos nomes de host.

    
por 17.10.2009 / 13:35
1

No escravo você tem mais opções para filtrar os dados. Existem as opções replicate-do-db e replicate-ignore-db, que também incluem opções replicate-do-table, replicate-ignore-table, replicate-wild-do-table e replicate-wild-ignore-table, que podem ser usado para filtrar o conteúdo que você não deseja replicar. Espero que ajude.

    
por 17.10.2009 / 12:38