Восстановление данных MySQL из запросов / журналов / двоичных/любых

У меня очень большая проблема с MySQL. У меня есть форма, в которой пользователи заполняют поле, соответствующее атрибуту datetime в базе данных. Проблема, с которой я сталкиваюсь, заключается в том, что форма имеет плохой формат для поля datetime, и все записи заполняются "0000-00-00 00:00:00" в базе данных.

есть ли способ восстановить данные, представленные пользователем? Может быть, из журнала / двоичного журнала?

Я проверил общий журнал, и он пуст.

спасибо заранее! Я очень ценю вашу помощь.

1 ответ:

на mysqlbinlog утилита может быть использована для преобразования двоичного журнала двоичный формат в текстовый формат.

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

обратите внимание, что двоичные журналы могут содержать операторы (эти изменения будут apparaent в выходных данных от 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