Como faço para que binlog-format = ROW seja o padrão de inicialização no arquivo /etc/my.cnf?

9

Eu posso executar a consulta SET GLOBAL binlog_format = 'ROW' e funciona para essa sessão.

Como faço para manter essa configuração depois de parar e reiniciar o MySQL?

NOTA: Estou na versão 5.5.19 do MySQL (com Moodle) e acabei de atualizar do MyISAM para o InnoDB e, portanto, preciso dessa nova configuração.

Eu tentei adicionar esses dois comandos (separadamente) ao my.cnf: binlog-format = ROW e binlog_format = ROW e nenhum deles funciona. Parei e reiniciei o MySQL toda vez que mudei o my.cnf.

O erro que recebo sem que isso seja definido é a mensagem de erro nefasta:

Informações sobre depuração: não é possível executar a instrução: impossível gravar no log binário, pois BINLOG_FORMAT = STATEMENT e pelo menos uma tabela usa um mecanismo de armazenamento limitado ao log baseado em linha. O InnoDB é limitado ao registro de linhas quando o nível de isolamento da transação é READ COMMITTED ou READ UNCOMMITTED.

Constança
fonte

Respostas:

15

Eu acho que seu problema pode resultar de onde você escreveu a diretiva

Certifique-se de colocar a opção sob o [mysqld]cabeçalho em /etc/my.cnf

[mysqld]
binlog_format = ROW

Se você colocá-lo em qualquer outro cabeçalho, o processo mysqld não o verá.

De uma chance !!!

RolandoMySQLDBA
fonte
Isso funcionou! Sim, estava sob outro cabeçalho.
Constance
0

3 Valores para binlog_format

[mysqld]
binlog_format = ROW
[mysqld]
binlog_format = STATEMENT
[mysqld]
binlog_format = MIXED
Alternativas
fonte