O arquivo de configuração padrão do MySQL /etc/mysql/my.cnf instalado por algum pacote debian usando o APT geralmente define a variável log_bin, então o binlog está habilitado:
log_bin = /var/log/mysql/mysql-bin.log
Quando eu quiser desabilitar o log binário em tal instalação, comente a linha em my.cnf funciona, é claro, mas eu me pergunto se existe uma maneira de desabilitar o log binário configurando explicitamente log_bin para OFF, em um estilo debian, quero dizer em um arquivo incluído como /etc/mysql/conf.d/myCustomFile.cnf, então o padrão my.cnf não é alterado e pode ser facilmente atualizado pelo apt, se necessário.
Eu tentei "log_bin = 0", "log_bin = OFF" ou "log_bin =" mas nenhum funciona...
Esta é uma pergunta antiga, mas surgiu em uma pesquisa enquanto eu tentava refrescar minha memória sobre o nome correto da opção e, agora que descobri, estou adicionando os detalhes aqui.
A parte fundamental da pergunta é:
Você pode fazer isso a partir de um arquivo de opção incluído usando a opção
skip-log-bin
. Por exemplo, você pode criar/etc/mysql/conf.d/disable_binary_log.cnf
com o seguinte conteúdo:Você pode adicionar
skip-
como prefixo a outras opções para desativá-las dessa maneira também.Perguntas e respostas relacionadas: para limpar os logs acumulados no momento, consulte esta resposta .
No MySQL 8, é a opção disable_log_bin que deve ser fornecida sem nenhum parâmetro no
my.cnf
arquivo na[mysqld]
seção:Da entrada manual Opções e variáveis de registro binário :
Para reter apenas uma quantidade mínima específica de dados, você também pode usar
binlog_expire_logs_seconds
no MySQL 8:Do Manual para MariaDB ( https://mariadb.com/kb/en/library/activating-the-binary-log/ )
No entanto,
No entanto, se você disser que foi habilitado por padrão durante a instalação, você deve desabilitar removendo a linha do seu arquivo my.cnf e então reiniciar o mysqld. Você também pode limpar os dados binários ( https://dev.mysql.com/doc/refman/5.6/en/purge-binary-logs.html )
Finalmente, como a resposta do outro pôster menciona, no MySQL 8 há uma opção para desativar explicitamente o log binário do arquivo de configuração usando as opções
--skip-log-bin
ou--disable-log-bin
na seção [mysqld] do arquivo de configuração.Se você não estiver replicando, poderá desabilitar o registro binário alterando seu arquivo my.ini ou my.cnf. Abra seu my.ini ou /etc/my.cnf (/etc/mysql/my.cnf), digite:
# vi /etc/my.cnf
Encontre uma linha que leia "log_bin" e remova ou comente da seguinte forma:
#log_bin = /var/log/mysql/mysql-bin.log
Você também precisa remover ou comentar as seguintes linhas:
#expire_logs_days = 10
#max_binlog_size = 100M
Feche e salve o arquivo. Finalmente, reinicie o servidor mysql:
# service mysql restart
Você pode ver assim, log_bin não deve aceitar parâmetros, ou você coloca:
ou nada, pois é um parâmetro booleano.
No entanto, se um valor for definido, os logs serão habilitados e o valor interpretado como o nome de base do log binário.
As opções de log têm um histórico de não serem muito intuitivas e de alterar seu formato de versão para versão (estou olhando para você, log lento).
Editar: em versões recentes, o log binário agora está habilitado por padrão. Para desativá-lo, deve-se especificar:
--skip-log-bin
ou--disable-log-bin
na linha de comando (ou os mesmos parâmetros no arquivo de opções).log-bin
continua trabalhando para habilitar explicitamente o log binário como antes.Como eu sei depois de atualizar um pacote, o arquivo de configuração deve ser o antigo, então após a atualização você tem os mesmos arquivos de configuração. Caso contrário, você pode criar um segundo arquivo de configuração no caminho $MYSQL_HOME/my.cnf. Este é para opções específicas do servidor e, como eu sei, substituirá as configurações em /etc/my.cnf global