1611
MySQLERRORNotableReplicationHIGH confidence
ROW binlog mode but engine requires statement-based logging
Production Risk
Medium — the statement fails; no data is written.
What this means
The binary log format is set to ROW but the statement uses a storage engine that cannot be logged in row format.
Why it happens
- 1binlog_format=ROW is set globally, but a statement writes to a storage engine (e.g., certain NDB tables) that requires statement-based logging.
How to reproduce
trigger — this will error
trigger — this will error
SET GLOBAL binlog_format = 'ROW'; -- Then execute a statement on a non-row-capable engine
expected output
ERROR 1611 (HY000): Cannot execute statement: impossible to write to the binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging.
Fix
Switch to MIXED binlog format
Switch to MIXED binlog format
SET GLOBAL binlog_format = 'MIXED';
Why this works
MIXED format automatically selects row or statement logging as appropriate for each statement.
Sources
Official documentation ↗
MySQL 8.0 — 1611 ER_BINLOG_ROW_MODE_AND_STMT_ENGINE
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev