是否可以配置MySQL日志记录,以便它只报告已回滚的查询?

时间:2011-05-26 13:27:54

标签: php mysql zend-framework innodb rollback

我有一个intermittent bug我正在尝试追踪,我想只捕获失败导致回滚的MySQL查询。我不想要一个完整的general querybinary日志,因为大海捞针中有数百万个条目需要排序。

除了MySQL之外,像this solution这样的东西是完美的。

TIA,
JD

2 个答案:

答案 0 :(得分:1)

在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
        }
    }
}

您可以覆盖不同的方法,例如更新,查询等......

答案 1 :(得分:1)

不能直接回答您的问题,但实用程序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/

这是official documentation for mysqlbinlog,可能会帮助您获得所需的信息。