MySQL什么情况下DML操作不会记录binlog ? 以下情况可能会造成DML不会记录binlog: 1、并未开启binlog 2、在执行DML之前set sql_log_bin=0; 3、DML操作提交后,未完成binlog写入,此时MySQL crash,MySQL重新启动后,会回滚该操作。 4、DML操作提交后,由于sync_binlog配置为非0,MySQL服务器down机导致binlog并未持久化。 5、主库提交事务,同步到从库,但从库并未开启log_slave_updates,也无法记录binlog 6、DML操作在temporary表(非memory引擎)上,由于是会话级的数据变更,并不记录binlog 7、update/delete等DML并没有达到数据更新。 8、其他原因如:binlog文件权限、文件句柄、inode耗尽、磁盘空间满等原因导致binlog无法写入。