我一直在看这个帖子 How can I log "show processlist" when there are more than n queries?
运行此命令工作正常
mysql -uroot -e "show full processlist" | tee plist-$date.log | wc -l
覆盖文件的问题
我也想在 cronjob 中运行它。
我已将此命令添加到 /var/spool/cron/root
:
* * * * * [ $(mysql -uroot -e "show full processlist" | tee plist-`date +%F-%H-%M`.log | wc -l) -lt 51 ] && rm plist-`date +%F-%H-%M`.log
但它不起作用。或者它可能正在将日志文件保存在根文件夹之外的某个位置。
所以我的问题是:如何临时记录来自特定数据库和特定表的所有查询并将整个查询保存在 1 个文件中?
注意:我正在寻找的不是慢/长的查询日志,而只是读取数据库正在运行的查询的临时解决方案
最佳答案
解决方案是:
watch -n 1 "mysqladmin -u root -pXXXXX processlist | grep tablename" | tee -a /root/plist.log
关于mysql - 如何记录特定数据库的 mysql 查询 - Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31756139/