1561
MariaDBERRORNotableReplicationHIGH confidence

Temp table open prevents switching out of row-based replication

Production Risk

Low — the change is blocked; no data is lost.

What this means

Cannot change binlog_format away from ROW while a temporary table is open.

Why it happens
  1. 1A temporary table is open in the current session while trying to switch binlog_format away from ROW.
How to reproduce
trigger — this will error
trigger — this will error
SET GLOBAL binlog_format = 'STATEMENT'; -- while temp table open

expected output

ERROR 1561 (HY000): Cannot change the binlog direct flag when a temporary table is open

Fix

Close temporary tables first

Close temporary tables first
DROP TEMPORARY TABLE IF EXISTS tmp_foo;
SET GLOBAL binlog_format = 'STATEMENT';

Why this works

All temp tables must be closed before changing binlog_format away from ROW.

Sources
Official documentation ↗

MySQL 8.0 — 1561 ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MariaDB errors