我有一个intermittent bug我正在尝试追踪,我想只捕获失败导致回滚的MySQL查询。我不想要一个完整的general query或binary日志,因为大海捞针中有数百万个条目需要排序。
除了MySQL之外,像this solution这样的东西是完美的。 TIA,
JD
答案 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,可能会帮助您获得所需的信息。