如何以实时源格式查看 MySQL 中上次运行的查询?
我想让我的终端窗口保持打开状态,只要运行某些东西,屏幕上就会弹出 MySQL 查询。我知道我可以使用 tail 命令来完成此操作,但我不确定 MySQL 日志存储在哪里。我也可以执行 mysqladmin proc,但这并不能为我提供连续的实时反馈。
答案1
您在这里有几个选择。您可以通过添加以下内容来启用 MySQL 的常规查询日志记录:
log = /path/to/your/log.log
到您的 my.cnf (通常是 /etc/my.cnf)并重新启动。然后您可以根据需要尾随它。我不一定推荐这样做,因为随着时间的推移,该日志可能会变得相当大。
正如您所提到的,您的第二个选择是将 watch 与 mysqladmin proc 结合使用。例如,您可以使用:
watch -n.5 'mysqladmin proc stat'
每半秒向您显示进程列表和状态。您可以更改 -n.5 以满足您的特定需求(我更喜欢在该行中添加 stat 以提供额外的信息,这有时会很有帮助)。
答案2
所有查询都写入系统上名为“.mysqlhistory”的文件中。您可以运行以下命令来主动查看数据库上运行的查询。
查找/-名称“.mysqlhistory”-exec 'tail -f'