Disabilita la registrazione binaria di MySQL con la variabile log_bin


35

Il file di configurazione MySQL predefinito /etc/mysql/my.cnf installato da alcuni pacchetti debian usando APT spesso imposta la variabile log_bin, quindi i binlog sono abilitati:

log_bin = /var/log/mysql/mysql-bin.log

Quando voglio disabilitare la registrazione binaria su tale installazione, ovviamente commentare la riga in my.cnf funziona, ma mi chiedo se c'è un modo per disabilitare la registrazione binaria impostando esplicitamente log_bin su OFF, in uno stile debian, intendo in un file incluso come /etc/mysql/conf.d/myCustomFile.cnf, quindi my.cnf predefinito non viene modificato e può essere facilmente aggiornato da apt, se necessario.

Ho provato "log_bin = 0", "log_bin = OFF" o "log_bin =" ma nessuno funziona ...

Risposte:


42

Questa è una vecchia domanda, ma è emersa durante una ricerca mentre cercavo di fare jogging sulla mia memoria sul nome dell'opzione corretta e quindi ora che ho capito che sto aggiungendo i dettagli qui.

La parte fondamentale della domanda è:

Intendo in un file incluso come /etc/mysql/conf.d/myCustomFile.cnf

Puoi farlo da un file di opzioni incluso usando l'opzione skip-log-bin. Ad esempio, è possibile creare /etc/mysql/conf.d/disable_binary_log.cnfcon i seguenti contenuti:

[mysqld]
skip-log-bin

Puoi aggiungere skip-come prefisso altre opzioni per disabilitarle in questo modo.


1
Fantastico, esattamente quello che mi aspettavo. Funziona bene su MariaDB 10.0 almeno. Molte grazie.
Nicolas Payart,

7

In MySQL 8 è l'opzione disable_log_bin che deve essere fornita senza alcun parametro nel my.cnffile nella [mysqld]sezione.

[mysqld]
disable_log_bin
some-other-option = any-value

5

Puoi vederlo in questo modo, log_bin non dovrebbe accettare parametri, o metti:

log_bin

o niente affatto, in quanto è un parametro booleano.

Tuttavia, se viene impostato un valore, i registri sono abilitati e il valore interpretato come nome di base binlog.

Le opzioni di registro hanno una storia in cui non sono troppo intuitive e cambiano il suo formato da una versione all'altra (ti sto guardando, registro lento).


Non funziona su MariaDB
MechanTOurS il

Dato che uso MariaDB e ho la stessa identica linea nella mia configurazione, sono molto fiducioso che funzioni.
jynus,

4

Se non si esegue la replica, è possibile disabilitare il binlogging modificando il file my.ini o my.cnf. Apri my.ini o /etc/my.cnf (/etc/mysql/my.cnf), inserisci:

# vi /etc/my.cnf

Trova una riga che legge "log_bin" e rimuovila o commentala come segue:

#log_bin = /var/log/mysql/mysql-bin.log

È inoltre necessario rimuovere o commentare le seguenti righe:

#expire_logs_days = 10

#max_binlog_size = 100M

Chiudi e salva il file. Infine, riavvia il server mysql:

# service mysql restart


1
Penso che l'OP lo capisca, ed è per questo che ha scritto: "Intendo in un file incluso come /etc/mysql/conf.d/myCustomFile.cnf, quindi my.cnf predefinito non è cambiato"
Peter V. Mørch

1

Dal manuale di MariaDB ( https://mariadb.com/kb/en/library/activating-the-binary-log/ )

Se non si fornisce un nome (che può, facoltativamente, includere un percorso assoluto), il valore predefinito sarà datadir / log-basename-bin, datadir / mysql-bin o datadir / mariadb-bin

Tuttavia,

I client con privilegio SUPER possono disabilitare e riattivare il registro binario per la sessione corrente impostando la variabile sql_log_bin.

SET sql_log_bin = 0;

SET sql_log_bin = 1;

Tuttavia, se si dice che è stato abilitato per impostazione predefinita durante l'installazione, è necessario disabilitare rimuovendo la linea dal file my.cnf e quindi riavviare mysqld. Puoi anche eliminare i dati binari ( https://dev.mysql.com/doc/refman/5.6/en/purge-binary-logs.html )

PURGE BINARY LOGS

Infine, come menzionato nella risposta dell'altro poster, in MySQL 8 esiste un'opzione per disattivare esplicitamente la registrazione binaria dal file di configurazione utilizzando le opzioni --skip-log-bino --disable-log-binnella sezione [mysqld] del file di configurazione.

Per disabilitare la registrazione binaria, è possibile specificare l' opzione --skip-log-bino --disable-log-binall'avvio. Se una di queste opzioni è specificata ed --log-binè anche specificata, l'opzione specificata in seguito ha la precedenza. Quando la registrazione binaria è disabilitata, la variabile di sistema log_bin è impostata su OFF.


0

Come so dopo aver aggiornato un pacchetto, il file di configurazione dovrebbe essere quello vecchio, quindi dopo l'aggiornamento hai gli stessi file di configurazione. Altrimenti, puoi creare un secondo file di configurazione nel percorso $ MYSQL_HOME / my.cnf. Questo è per opzioni specifiche del server e, come so, sovrascriverà le impostazioni in /etc/my.cnf globale


1
Sì, la politica di default di Debian non sovrascrive un file di configurazione in / etc. Ma la mia domanda era precisamente come sovrascrivere l'impostazione log_bin con un "valore nullo" SENZA commentare la riga in /etc/mysql/my.cnf.
Nicolas Payart,

skip-log-bin disattiva i booleani impostati altrove
santiago arizti il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.