MySQL客户端历史记录不记录某些查询

时间:2014-02-19 14:47:45

标签: mysql

我注意到最近mysql客户端工具没有记录我发出的所有查询。这种行为似乎很不一致;一些查询被记录而其他查询没有,没有任何明确的模式,虽然看起来查询越简单,就越有可能被记录。至少可以说这很烦人。我在Ubuntu 12.04 LTS下使用MySQL 5.6.14。

似乎没有太多的模式:可能会记录SELECT COUNT(*) FROM TABLE_X WHERE COL_1=3;之类的查询,而SELECT COL_1,COUNT(COL_1) FROM TABLE_X GROUP BY COL_1则不会。{/ p>

有什么想法吗?这是MySQL的一个最新版本,我只是在开发中使用它,但我想将它推广到我们的现场机器,因为微秒时间戳分辨率以比迄今为止更清洁的方式解决了我所遇到的许多问题。

更新:根据下面的Alex_at_wearenotmachines,查询中*PASSWORD*形式的模式禁用了日志记录,这显然是一个过于宽泛的标准。

2 个答案:

答案 0 :(得分:3)

刚刚在bugs.mysql.com上报告了这个问题 - 你得到了奇怪的mysql>提示突然出现在命令事件的中间?并且运行创建表命令的平均大约0.75秒?似乎有点慢......

也看不到任何模式 - 它拒绝记住SELECT密码FROM users。但记得大多数其他事情。已经使用了大约3个星期,今天才注意到,但回顾我的历史,我可以看到一些逻辑上的差距,显然缺少了东西。

答案 1 :(得分:3)

这真是一个错误。没有理由将其从客户端历史记录中删除。它应该只对输入它的人开放!

此外,模式过于宽泛。如果没有字符串文字,则没有敏感数据,因此模式而不是“ IDENTIFIED PASSWORD ”应该在行中的某处需要字符串文字(仍然是广泛但更合理的)如: IDENTIFIED ['“]*:*PASSWORD*['"] *

此外,您应该能够覆盖这些模式(就像我一直在密码列上编写多表连接(不要问),我甚至无法向上箭头输入缺少的逗号...)< / p>

还有一件事(谢谢Brian Matthews!http://forums.mysql.com/read.php?11,631456,631456#msg-631456)如果你像我一样完全被火腿串起来,你可以通过伪装mysql客户端二进制来禁用它。丑陋但有效。我现在有一个名为fix_mysql_client ...

的脚本