Como desativar o log binário para instâncias mysqld_multi?

1

O MySQL suporta a execução de múltiplos mysqld no mesmo servidor. Uma das maneiras é usar mysqld_multi .

Se a instância padrão do servidor MySQL (conforme configurado na seção [mysqld] em my.cnf ) usar log-bin , ela habilitará o log binário para todas as outras instâncias ( [mysqld1] , [mysqld2] , etc). Como podemos substituir a configuração das outras instâncias? Tentamos colocar log-bin= ou log-bin=OFF em [mysqld1] , mas isso não desativará o log binário.

    
por netvope 01.01.2011 / 07:06

1 resposta

2

Você pode ter que usar isso:

SET SQL_LOG_BIN = 0;

Execute isto toda vez que você se conectar ao mysql, e todas as consultas que você executar durante esta sessão não serão registradas nos logs binários.

Você pode executar o seguinte comando uma vez em qualquer instância do mysql no mysqld1 e desabilitar o registro binário para todas as conexões a partir de então até a próxima vez que o mysqld1 for reiniciado:

SET SQL_LOG_BIN = 0;
SET GLOBAL SQL_LOG_BIN = 0;

Isto NÃO desativa o logging binário. Apenas ignora a gravação de DDL, INSERTs, UPDATEs e DELETEs. Pelo menos, você pode realizar consultas mais rapidamente por não precisar gravá-las.

Eu realmente experimentei

lwdba @ localhost (DB information_schema) :: mostra registros binários; + ------------------ + ----------- +
| Log_name | File_size

+ ------------------ + ----------- +
| mysql-bin.000001 | 720

| mysql-bin.000002 | 4279

| mysql-bin.000003 | 128935976

+ ------------------ + ----------- +
3 linhas no set (0.00 seg)

lwdba @ localhost (DB information_schema) :: criar banco de dados test8; mostre registros binários; Consulta OK, 1 linha afetada (0.00 seg)

+ ------------------ + ----------- +
| Log_name | File_size

+ ------------------ + ----------- +
| mysql-bin.000001 | 720

| mysql-bin.000002 | 4279

| mysql-bin.000003 | 128936061

+ ------------------ + ----------- +
3 linhas no set (0.00 seg)

lwdba @ localhost (DB information_schema) :: define sql_log_bin = 0; criar tabela test8.dummy (a int) engine = MyISAM; insira nos valores test8.dummy (1), (2), (3); mostre registros binários; Consulta OK, 0 linhas afetadas (0.00 seg)

Consulta OK, 0 linhas afetadas (0.06 seg)

Consulta OK, 3 linhas afetadas (0.00 seg)
Registros: 3 Duplicados: 0 Avisos: 0

+ ------------------ + ----------- +
| Log_name | File_size

+ ------------------ + ----------- +
| mysql-bin.000001 | 720

| mysql-bin.000002 | 4279

| mysql-bin.000003 | 128936061

+ ------------------ + ----------- +
3 linhas no set (0.00 seg)

Observe como o comando create database foi gravado e o tamanho do último log binário foi alterado. Em seguida, observe como desativei o log binário e criei uma tabela no novo banco de dados de teste e adicionei 3 linhas a ele. No entanto, o último log binário permaneceu no mesmo tamanho.

Novamente, isso não desabilitará o log binário para a instância, mas isso deve ser a próxima melhor coisa.

    
por 22.02.2011 / 01:46