从查询/日志/二进制/任何内容中恢复MySQL数据

时间:2014-05-29 02:39:24

标签: mysql datetime logging recover

我对mysql有一个非常大的问题。我有一个表单,用户填写一个与数据库中的datetime属性对应的字段。我遇到的问题是表单的日期时间字段格式不正确,所有记录都填入数据库中的“0000-00-00 00:00:00”。

有没有办法可以恢复用户提交的数据?可能来自日志/二进制日志?

我检查了一般日志,它是空的。

提前致谢!我真的很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

mysqlbinlog 实用程序可用于将二进制日志二进制格式转换为文本格式。

http://dev.mysql.com/doc/refman/5.5/en/mysqlbinlog.html

请注意,二进制日志可能包含语句(这些更改将在mysqlbinlog urility的输出中显示。它可能还包含二进制更改,或者它们可能是混合的。二进制日志中记录的内容取决于设置 binlog_statement 系统变量。默认值取决于MySQL的版本。

http://dev.mysql.com/doc/refman/5.5/en/binary-log-setting.html

(最好在dba.stackexchange.com上询问这个问题。)

<强>后续

MySQL二进制日志不是InnoDB日志文件(ib_logfile0,ib_logfile1)。

二进制日志(在我的一个安装上)写入MySQL数据目录:

SHOW VARIABLES LIKE 'datadir'

e.g。

> ls -l /opt/mysql/data/mysql-bin*

-rw-rw---- 1 mysql mysql 1074553753 2014-05-28 22:39 /opt/mysql/data/mysql-bin.003907
-rw-rw---- 1 mysql mysql 1073745289 2014-05-29 01:22 /opt/mysql/data/mysql-bin.003908
-rw-rw---- 1 mysql mysql  280683262 2014-05-29 01:55 /opt/mysql/data/mysql-bin.003909
-rw-rw---- 1 mysql mysql  520382482 2014-05-29 05:55 /opt/mysql/data/mysql-bin.003910
-rw-rw---- 1 mysql mysql  705774048 2014-05-29 15:26 /opt/mysql/data/mysql-bin.003911
-rw-rw---- 1 mysql mysql        817 2014-05-29 05:55 /opt/mysql/data/mysql-bin.index

请注意,仅在启用二进制日志记录时才会写入二进制日志。您可以通过查询 log_bin 系统变量来检查当前是否启用了二进制日志记录:

SHOW VARIABLES LIKE 'log_bin'

Variable_name  Value   
-------------  --------
log_bin        ON