0

我对mysql有一个很大的问题。我有一个表单,用户在其中填写与数据库中的 datetime 属性相对应的字段。我遇到的问题是表单的日期时间字段格式错误,并且数据库中的所有记录都填充了“0000-00-00 00:00:00”。

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

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

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

4

1 回答 1

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'

例如

> 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      
于 2014-05-29T02:58:35.463 回答