在做TiDB体验3,记移植Matomo的一次痛苦尝试时,为了对比TiDB与MySQL,查找是哪条语句在TiDB下引发了报错,需要获得MySQL查询历史,经过一番搜索得到如下方案,
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
默认是不记录的,执行上面的两行代码后,便可以通过访问下面的表来获得MySQL的历史执行语句了。
SELECT * FROM mysql.general_log order by event_time desc limit 10
顺便在TiDB上也尝试了上面代码
SET GLOBAL log_output = 'TABLE';
得到报错,
SQL Error [1105] [HY000]: Variable 'log_output' is a read only variable
SET GLOBAL general_log = 'ON';
成功执行;
SELECT * FROM mysql.general_log
报错,
SQL Error [1146] [42S02]: Table 'mysql.general_log' doesn't exist
暂时不清楚TiDB如何查询,不过获得一个类似的,但是汇总信息,
SELECT * from
information_schema.STATEMENTS_SUMMARY_HISTORY ssh
where ssh.SCHEMA_NAME ='matomo'