我对mysql有一个非常大的问题。我有一个表单,用户填写一个与数据库中的datetime属性对应的字段。我遇到的问题是表单的日期时间字段格式不正确,所有记录都填入数据库中的“0000-00-00 00:00:00”。
有没有办法可以恢复用户提交的数据?可能来自日志/二进制日志?
我检查了一般日志,它是空的。
提前致谢!我真的很感激你的帮助。
答案 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