Можно ли настроить ведение журнала MySQL таким образом, чтобы он отображал только те запросы, которые были откатаны? - PullRequest
3 голосов
/ 26 мая 2011

У меня неустойчивая ошибка , которую я пытаюсь отследить, и я хотел бы перехватывать только те запросы MySQL, которые не выполняются, что приводит к откату. Мне не нужен полный общий запрос или двоичный журнал, потому что в стоге сена будут проходить миллионы записей.

Что-то вроде , это решение за исключением MySQL было бы идеальным.

ТИА,
JD

Ответы [ 2 ]

1 голос
/ 26 мая 2011

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

См .: комментарии пользователей на этой странице: http://dev.mysql.com/doc/refman/5.5/en/binary-log.html
И эта страница: http://ronaldbradford.com/blog/mysql-dml-stats-per-table-2009-09-09/

Вот официальная документация для mysqlbinlog , которая может помочь вам получить необходимую информацию.

1 голос
/ 26 мая 2011

В MySQL это очень сложно (а может и невозможно). Вы можете сделать это на PHP. Если вы не используете младшие функции, такие как mysql_query, и используете высокие методы, такие как -> query (), вы можете добавить к ним логику. Если запрос не удался (например, верните false), добавьте его в журнал. Извините за мой английский.

Примечание для Zend_DB:

class My_DB extends Zend_DB {
    public function insert($data) {
        try {
            parent::insert($data);
        } catch (Exception $e) {
            // put $e->getMessage() to log
        }
    }
}

Вы можете перезаписать различные методы, такие как обновление, запрос и другие ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...