mysql - 如何记录特定数据库的 mysql 查询 - Linux

标签 mysql linux ssh server hosting

我一直在看这个帖子 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/

相关文章:

MySQL分组并仅从每个组中选择第一个

php - 基于SQL Dump建立SQL Server

java - 在多节点群集上配置Twister

ssh - 将文件从一个 EC2 实例同步到另一个

linux - Bash while 循环使用包含本地 $variable 的远程 grep

mysql - 选择以特定字符结尾的所有值

mysql - 如果数组为空,where_in codeigniter 错误

python - crontab bash 脚本执行 - Raspberry Pi

linux - 对 expr 用法的困惑

java - Firefox Webdriver Selenium "No protocol specified"、Debian(Wheezy)、服务、脚本