我使用percona-toolkit来分析mysql-slow-query(logs) . 所以命令非常基本:
pt-query-digest slowquery.log
现在结果(错误)是:
18.2s用户时间,100ms系统时间,35.61M rss,105.19M vsz
当前日期:2016年7月7日星期四17:18:43
主机名:Jammer
文件:slowquery.log
管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest行2556.将重试管道进程4(迭代)2次 .
.. ..(相同的结果打印两次)..
管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest第2556行 . 由于进程4(迭代)导致过多错误,因此终止管道 .
现在有关环境的细节,我使用的是Ubuntu 16.04,MariaDB 10.1.14,Percona-Toolkit 2.2.16
我在这里找到了一些东西bug-report,但它就像一个解决方法,并没有真正解决错误 . 即使在应用补丁之后,命令结果看起来也不够令人满意 .
我在ubuntu 16.04 MySql上面临同样的问题 . 我的慢查询日志的内容如下 .
/ usr / sbin / mysqld,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)) . 开始于:Tcp端口:3306 Unix套接字:/var/run/mysqld/mysqld.sock时间Id命令参数/ usr / sbin / mysqld,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)) . 开始于:Tcp端口:3306 Unix套接字:/var/run/mysqld/mysqld.sock时间Id命令参数时间:2016-12-08T05:13:55.140764Z User @ Host:root [root] @ localhost [] Id: 20 Query_time:0.003770 Lock_time:0.000200 Rows_sent:1 Rows_examined:2 SET timestamp = 1481174035; SELECT COUNT(*)FROM INFORMATION_SCHEMA.TRIGGERS;
错误是一样的:
管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest第2556行 .
Ubuntu 16.04 MySql Ver 14.14 Distrib 5.7.16 pt-query-digest 2.2.16
3 回答
该错误似乎在当前版本的工具包(2.2.20)中得到修复,显然在之前版本中从2.2.17开始修复 .
这个补丁似乎在
pt-query-digest
中为这个特定的地方做了诀窍:但正如原始问题和错误报告中所提到的,相当多的工具/功能受到影响,完整的错误修复包含许多小的更改:https://github.com/percona/percona-toolkit/pull/73/files
我可能会迟到 . 我想分享一下我如何克服同样的错误,因为它可能会帮助那些正在寻找答案的人 . 目前,Percona工具包的最新标签是3.0.9
我尝试通过apt安装后运行pt-query-digest,通过下载deb文件作为Percona文档提供的方法,但任何一个都无济于事 . 这是同样的错误 .
1 - 所以我删除/删除了percona-toolkit的安装
2 - 首先,我清理/更新了perl版本
3 - 然后我在repository's自述文件中提到了来自源的Percona工具包 . 像这样 . 我使用了分支3.0 .
而已 . 希望这对某人有所帮助 .
我在这个版本中发现错误percona-toolkit-3.0.12-1.el7.x86_64.rpm和percona-toolkit-3.0.10-1.el7.x86_64.rpm很好,percona-toolkit对我非常有用