mysql的binlog日志,用于记录数据库的增、删、改等修改操做,默认处于关闭状态。使用binlog实现数据恢复的条件为html
一、binlog日志功能已开启mysql
二、若binlog在数据库建立一段时候后开启,则实现恢复数据须要基于binlog开启以后某一时刻的数据备份sql
三、binlog工做在Statement level(默认)模式,隔离级别为 repeatable read 时,采用乐观锁并发插入数据,可能发生死锁数据库
乐观锁: insert into A并发
select a, b, c from dual.net
where exists(select 1 from dual where '...' = (select max(...) from A)) rest
错误信息:Deadlock found when trying to get lock; try restarting transaction日志
隔离级别为read committed 时,依然报错:impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logginghtm
即使查询和插入的数据范围不重合(如不一样客户同时插入数据),依然如此;binlog工做在Mixed模式下不存在该状况,具体缘由待研究blog
binlog的使用及数据恢复过程,可参考一下分享: