MySQL 5.1 or newer can sometimes start throwing a strange message
into an error log. The message states that a query was unsafe for
binary logging along with some additional information. What does
it mean? Is it a problem?
From time to time you might spot MySQL error log filling with the
following warning:
“[Warning] Unsafe statement written to the binary log using
statement format since BINLOG_FORMAT = STATEMENT. The statement
is unsafe because it uses a LIMIT clause. This is unsafe because
the set of rows included cannot be predicted. Statement: DELETE
FROM score WHERE user_id = 12345 AND created = ’2012-04-15′ LIMIT
1″
If binary logging is enabled and the log format is set to
STATEMENT
, MySQL generates such message when it
considers that a query is ambiguous and could behave differently
each time it executes against the same data set. Such situation
could happen, for example, on a …
[Read more]