Бинарное ведение журнала MySQL, предотвращающее транзакции записи - Bitnami
Я пытаюсь настроить MySQL на подготовленной для Bitnami виртуальной машине для репликации (не путать с MySQL с репликацией из Bitnami), и у меня возникают проблемы с ее двоичным журналированием.
Когда я добавляю строку log-bin = mysql-bin
или же log_bin = mysql-bin
в файле my.cnf под [mysqld]
, все сохраняет и MySQL перезагружается просто отлично. Но когда я тестирую свое приложение, работают только транзакции чтения. Редактирование или создание нового контента не удается.
Я не нашел другой файл cnf, с которым я конфликтую, и журналы bin появляются. Но, кажется, происходят некоторые странные эффекты, с которыми я не сталкивался при настройке других серверов MySQL в прошлом.
У кого-нибудь есть представление о том, что происходит?
1 ответ
Я продолжил копать и обнаружил, что виновником была наша конфигурация "изоляция транзакций". У нас установлено "READ-COMMITTED", чтобы помочь решить проблемы с блокировкой, и эта конфигурация не разрешает двоичное ведение журнала "STATEMENT" ("binlog_format"), которое является настройкой по умолчанию на нашем сервере. Эффект ограничивал наши транзакции только для чтения.
Решение состояло в том, чтобы установить 'binlog_format' в 'ROW' (или MIXED). Очевидно, что люди, которые могут когда-либо ссылаться на это, не должны устанавливать это, если они не знают, что их система может работать в таких условиях, но в нашем случае это приемлемый вариант.
Это, конечно, не имеет ничего общего с Битнами. Просто ограничение конфигурации.