MySQL慢查询之:-bash:mysqldumpslow: command not found

文章介绍了在使用mysqldumpslow分析MySQL慢查询时遇到的‘commandnotfound’错误的原因及解决方法。通过创建符号链接,将mysqldumpslow命令指向其实际安装路径,解决了因命令路径不正确导致的报错。之后,文章给出了如何设置和使用mysqldumpslow分析慢查询日志的步骤,包括模拟慢查询、查看慢查询日志位置以及使用mysqldumpslow进行排序和筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初玩MySQL慢查询的小伙伴可能会碰到这样一个问题,在使用慢查询分析工具mysqldumpslow的时候会报一个这样的错误

-bash:mysqldumpslow: command not found

原因:

系统默认是在/usr/bin目录下找mysqldumpslow命令,如果你的Mysql没有安装在这个路径下,那就报错给你看

解决办法:

  1. 因为系统会来这找命令,所以直接把MySQL安装在这就好(什么?已经安装到其他路径下了不想再重新安装?那就使用下面一招)
  2. 告诉系统,到指定的路径下找mysqldumpslow文件,给服务器一个指令,告诉它你的文件在这里,比如我的安装路径和文件在/www/server/mysql/bin

所以我要告诉服务器到这里去找mysqldumpslow文件

ln -s /www/server/mysql/bin/mysqldumpslow /usr/bin;

当然有伙伴或出现 文件已存在的情况

莫慌,我们可以把它覆盖掉,在原有命令上加f即可(注意: /usr/bin前面有一个空格)

ln -sf /www/server/mysql/bin/mysqldumpslow /usr/bin;

回车后,如果什么都没有,那就说明系统已经找到mysqldumpslow这个文件了,测试一下,如果出现下面的画面,说明文件已经找到,接下来就可以使用mysqldumpslow分析慢日志了

mysqldumpslow --help

测试:

我的慢查询时间设定是3S,分别执行下面2条命令,模拟SQL执行5秒和8秒的情况,再查看慢日志有没有记录下

select sleep(5);
select sleep(8);

执行完成,理论上说超过我设定的3秒,肯定会被记录到慢日志中了,啥?你不知道你日志文件放在哪了?!?执行下面代码

show variables like '%slow_query_log%';

 比如执行后,我的位置在/www/server/data/mysql-slow.log,记住这个位置,待会要用到

然后exit退出MySQL,因为日志文件不在MySQL中

 知道慢日志文件位置,就可以结合一下命令,用mysqldumpslow来分析日志了

-s 按照那种方式排序
c:访问计数
l:锁定时间
r:返回记录
al:平均锁定时间
ar:平均访问记录数
at:平均查询时间
-t 是top n的意思,返回多少条数据。
-g 可以跟上正则匹配模式,大小写不敏感

mysqldumpslow -s c -t 2 /www/server/data/mysql-slow.log;

 我添加了一个5秒一个8秒的模拟慢SQL,查询出来的综合时间13秒,共2条数据,执行的SQL语言是select sleep(秒),能出现这样的结果说明mysqldumpslow分析慢查询OK

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值