使用mysqldumpslow.pl分析慢查询日志遇到的问题及解决方式

mysql慢sql排查与分析 慢查询日志的排查与分析 阅读详情
c:\Program Files\MySQL\MySQL Server 8.0\bin>perl mysqldumpslow.pl
Can't determine basedir from 'my_print_defaults mysqld' output:  at mysqldumpslow.pl line 61.

先分析下出现这个问题的原因:

c:\Program Files\MySQL\MySQL Server 8.0\bin>my_print_defaults mysqld

可以看到执行这个命令,并没有任何输出。

查看下这个命令:

c:\Program Files\MySQL\MySQL Server 8.0\bin>my_print_defaults --help
my_print_defaults  Ver 8.0.13 for Win64 on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Prints all arguments that is give to some program using the default files
Usage: my_print_defaults [OPTIONS] groups
  -c, --config-file=name
                      Deprecated, please use --defaults-file instead. Name of
                      config file to read; if no extension is given, default
                      extension (e.g., .ini or .cnf) will be added
  -#, --debug[=#]     This is a non-debug version. Catch this and exit
  -c, --defaults-file=name
                      Like --config-file, except: if first option, then read
                      this file only, do not read global or per-user config
                      files; should be the first option
  -e, --defaults-extra-file=name
                      Read this file after the global config file and before
                      the config file in the users home directory; should be
                      the first option
  -g, --defaults-group-suffix=name
                      In addition to the given groups, read also groups with
                      this suffix
  -e, --extra-file=name
                      Deprecated. Synonym for --defaults-extra-file.
  -n, --no-defaults   Ignore reading of default option file(s), except for
                      login file.
  -l, --login-path=name
                      Path to be read from under the login file.
  -s, --show          Show passwords in plain text.
  -?, --help          Display this help message and exit.
  -v, --verbose       Increase the output level
  -V, --version       Output version information and exit.

Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf c:\Program Files\MySQL\MySQL Server 8.0\my.ini c:\Program Files\MySQL\MySQL Server 8.0\my.cnf

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
config-file                       my
defaults-file                     my
defaults-extra-file               (No default value)
defaults-group-suffix             (No default value)
extra-file                        (No default value)
login-path                        (No default value)
show                              FALSE

Example usage:
my_print_defaults --defaults-file=example.cnf client mysql

指定默认配置文件试下:

c:\Program Files\MySQL\MySQL Server 8.0\bin>my_print_defaults -e "c:\programdata\mysql\mysql server 8.0\my.ini" mysqld
--port=3306
--basedir=C:/Program Files/MySQL/MySQL Server 8.0/
--datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
--default_authentication_plugin=caching_sha2_password
--default-storage-engine=INNODB
--sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
--log-output=FILE
--general-log=0
--general_log_file=DESKTOP-VI7DM9L.log
--slow-query-log=1
--slow_query_log_file=DESKTOP-VI7DM9L-slow.log
--long_query_time=10
--log-bin=DESKTOP-VI7DM9L-bin
--log-error=DESKTOP-VI7DM9L.err
--server-id=1
--lower_case_table_names=1
--secure-file-priv=C:/ProgramData/MySQL/MySQL Server 8.0/Uploads
--max_connections=151
--table_open_cache=2000
--tmp_table_size=25M
--thread_cache_size=10
--myisam_max_sort_file_size=100G
--myisam_sort_buffer_size=40M
--key_buffer_size=8M
--read_buffer_size=64K
--read_rnd_buffer_size=256K
--innodb_flush_log_at_trx_commit=1
--innodb_log_buffer_size=1M
--innodb_buffer_pool_size=8M
--innodb_log_file_size=48M
--innodb_thread_concurrency=9
--innodb_autoextend_increment=64
--innodb_buffer_pool_instances=8
--innodb_concurrency_tickets=5000
--innodb_old_blocks_time=1000
--innodb_open_files=300
--innodb_stats_on_metadata=0
--innodb_file_per_table=1
--innodb_checksum_algorithm=0
--back_log=80
--flush_time=0
--join_buffer_size=256K
--max_allowed_packet=4M
--max_connect_errors=100
--open_files_limit=4161
--sort_buffer_size=256K
--table_definition_cache=1400
--binlog_row_event_max_size=8K
--sync_master_info=10000
--sync_relay_log=10000
--sync_relay_log_info=10000
--loose_mysqlx_port=33060

看到了吧,让我们把mysqldumpslow.pl改一下:

my $defaults   = `my_print_defaults  -e "c:\\programdata\\mysql\\mysql server 8.0\\my.ini" mysqld`;

修改以后,再次执行,我遇到了第二个问题:

c:\Program Files\MySQL\MySQL Server 8.0\bin>perl mysqldumpslow.pl

Reading mysql slow query log from C:/ProgramData/MySQL/MySQL Server
Can't open C:/ProgramData/MySQL/MySQL: No such file or directory at mysqldumpslow.pl line 96.
Can't open Server: No such file or directory at mysqldumpslow.pl line 96.

很明显的慢查询日志路径出了问题。因为不熟悉Perl语言,所以借助了eclipse调试 这段代码,最终找到了问题。

代码做出如下修改:

   if ( -f $slowlog ) {
        @ARGV = ($slowlog);
        die "Can't find '$slowlog'\n" unless @ARGV;
    } else {
        @ARGV = <"$datadir"/$opt{h}-slow.log>;
        die "Can't find '$datadir/$opt{h}-slow.log'\n" unless @ARGV;
    }

用引号将$datadir引起来,这样问题就解决了。

出现这个问题的原因就在于windows命令行中带空格的路径要使用引号括起来。

再次执行就可以分析慢查询日志了。

c:\Program Files\MySQL\MySQL Server 8.0\bin>perl mysqldumpslow.pl

Reading mysql slow query log from C:/ProgramData/MySQL/MySQL Server
Can't open C:/ProgramData/MySQL/MySQL: No such file or directory at mysqldumpslow.pl line 96.
Can't open Server: No such file or directory at mysqldumpslow.pl line 96.

c:\Program Files\MySQL\MySQL Server 8.0\bin>perl mysqldumpslow.pl

Reading mysql slow query log from C:/ProgramData/MySQL/MySQL Server 8.0/Data/DESKTOP-VI7DM9L-slow.log
Count: 1  Time=0.00s (0s)  Lock=0.03s (0s)  Rows=0.0 (0), root[root]@localhost
  show create table customers

Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=122.0 (122), root[root]@localhost
  select * from customers

Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=122.0 (122), root[root]@localhost
  select * from customers order by phone

Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=122.0 (122), root[root]@localhost
  select * from customers order by phone;
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)


Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), 0users@0hosts
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  c:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  # Time: N-N-10T08:N:N.145812Z
  # User@Host: root[root] @ localhost [::N]  Id:     N
  # Query_time: N.N  Lock_time: N.N Rows_sent: N  Rows_examined: N
  use yiibaidb;
  SET timestamp=N;
  show tables;
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  C:\Program Files\MySQL\MySQL Server N.N\bin\mysqld.exe, Version: N.N.N (MySQL Community Server - GPL). started with:
  TCP Port: N, Named Pipe: (null)
  # Time: N-N-11T00:N:N.815072Z
  # User@Host: root[root] @ localhost [::N]  Id:     N
  # Query_time: N.N  Lock_time: N.N Rows_sent: N  Rows_examined: N
  SET timestamp=N;
  show databases

 

MySQL慢查询分析工具mysqldumpslow 注:因为笔者使用的是phpstudy2018,此集成环境不包含mysqldumpslow,所以需要自己下载。 下载并安装ActivePerl 链接:https://pan.baidu.com/s/1eQoUoN3fiuWE1fBcUzBAQw 提取码:9lt5 像平常安装软件那样即可,安装好后按win+R键打开win命令行工具,并输入perl -h看看是否正确安装。 ... 阅读详情

相关推荐

C语言—for循环打印矩形,正三角形,倒三角形,九九乘法,等腰三角形,倒着的等腰三角形(简易版代码)(重点考察for循环嵌套)

本章节教大家如何利用for循环打印正三角形,倒三角形,九九乘法表及等腰三角形(简易版代码)说明:1、循环语句的循环体内又包含另一个完整的循环结构,称为循环结构的嵌套。内嵌的循环语句中还可以再嵌套循环结构,这样就形成多重循环结构的嵌套。2、for 语句、while 语句和 do-while 语句都允许嵌套。三种循环语句可以相互嵌套。3、内层的循环语句必须完全被包含在外层的循环体中,不能发生交叉。

m0_63501145的博客 1697

Mysql深入二:开启慢查询及慢查询工具mysqldumpslow

目录 一、慢查询配置,及配置项说明 二、将上面的配置放入到Mysql安装目录的my.ini文件中 三、修改了配置文件,需要在命令行重启一下mysql服务 四、去数据库查询语句,需要超过10s的语句才会被记录,当然上面你可以自己设置慢查询的时间,从而记录,最终都会写到data目录下的DESKTOP-2EKGE5-show.log文件中,这都是上面配置文件设置的 五、安装慢查询辅助工具软件A...

神韵 820

中国知网文献引用导入EndNote9.X,Web of science导入endnote以及谷歌学术导入endnote图文详解,全网最细版本适用EndNote9.x,Endnote20版本

在科研中用到EndNote管理文献,遇到插入文献时,中国知网如何将参考文献导进Endnote9.x或者web of sicence,谷歌学术如何将文章,文献导入进文献管理软件EndNote的详细图文2022版本解释,全网最细的笔记教程,值得大家参考收藏学习

sakura的博客 5178

MySQL慢查询mysqldumpslow和pt-query-digest工具

Windows环境 准备 https://dev.mysql.com/doc/index-other.html sakila-schema.sql是创建表的sql sakila-data.sql是数据的sql 第一个sql文件可以执行,但是第二个sql就不行了。报错! 选择使用命令行界面,将sakila-data.sql里面的数据,全部复制到命令行界面,回车执行。 ok!没有任何问题。 开启慢查询 临时开启慢查询 set global slow_query_log = o.

hikktn的博客 833

1976国际标准大气_Matlab

输入高度,计算空气密度、气压、温度、声速 function [airDens,airPress,temp,soundSpeed]=Atmos(geomAlt) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1976 U.S Standard Atmosphere Interpolation % % Note: Function does not extr.

JISANSAN的博客 1万+

Android11原生设置屏幕亮由Gamma变化改为线性变化

从Android9 开始屏幕亮度调解变成非线性变化,这样的话就会出现 之前亮度变化很小,到后面时变化亮度很快; 修改为线性变化,只需要修改 ./frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache L

Android 4926

MySQL慢查询日志分析(慢查询日志)

可以看到默认慢日志的保存文件以及状态 ,OFF说明没有开启。

菜鸡的博客 1552

《电磁兼容设计》专栏说明

本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限

linkking27的博客 794

温故MySQL - 10 性能分析工具:定位执行慢的SQL~慢查询日志

文章目录1. 开启慢查询日志参数2. 修改long_query_time阈值3. 查询慢查询的条目数4. 慢查询日志分析工具:mysqldumpslow5. 关闭慢查询日志 定位执行的SQL :慢查询日志 MySQl的慢查询日志,用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间。 它的主要作用是,帮助我们发

你今天真好看呀 816

华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)

华为数通HCIP H12-831多选题

didiplus 1291

VMware ESXi 系统里创建虚拟机,虚拟磁盘日志损坏,如何或者把数据备份?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1642

mysqldumpslow和mysqlsla分析mysql慢查询日志

Windows下开启MySQL慢查询 MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上 log-slow-queries = F:\MySQL\log\mysqlslowquery.log long_query_time = 2

God's blog 1万+

使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真

目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S

xiaoheshang_123的博客 291

mysql 慢查询日志开启与mysqldumpslow分析

一、Mysql慢查询日志开启   慢查询日志常用语句 #查看慢查询日志输出方式 show variables like '%output%' #查看慢查询文件输出位置 show variables like '%slow_query_log_file%' #查看慢查询是否开启,及文件输出位置 show variables like '%slow_query_log%' #查看慢查...

Mark_Xu的博客 1946

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

windows下使用慢查询日志分析工具之mysqldumpslow

1.在 windows 下可以在mysql/bin目录下可以找到 mysqldumpslow.pl 文件,是一个 perl 格式的文件; 这种格式的文件在windows下是不能直接执行的,若要使用,得先安装 perl 支持,我们可以在 Perl 的官网下载对应平台的安装包:https://www.perl.org/get.html,为了使用方便,安装完成后最好配置环境变量。 2.进入mysql...

living_ren的博客 5813

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MySQL慢查询分析 —— pt-query-digest 与 mysqldumpslow

查看锁请求信息方法 show full proceslist information_schema架构下三张表主要字段含义 innodb_trx ## 当前运行的所有事务 trx_id #事务ID trx_state #事务状态 trx_started #事务开始时间 trx...

Hehuyi_In的博客 2973

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL追梦旅途之慢查询分析工具mysqldumpslow和pt-query-digest

mysqldumpslow (暂时没测试过)mysqldumpslow 是 MySQL 自带的一个命令行工具,用于解析和汇总慢查询日志文件。它可以帮助数据库管理员快速了解哪些查询是导致性能瓶颈的主要原因,并为优化提供方向。基本用法log_file:指定要解析的慢查询日志文件路径。如果不指定,默认会读取所有名为 host_name-slow.log 的文件。

qq_40691438的博客 1187

Windows下安装使用mysqldumpslow

首先需要安装Perl,在windows下安装Perl,安装过程很简单,从官网 http://strawberryperl.com/ 下载windows安装包,安装好之后,测试perl -v,如果能显示版本号,表示安装成功。 mysqldumpslow是一个perl脚本,只需下载并赋权即可执行。 D:\MySQL Datafiles>perl mysqldumpslow.pl --help Usage: mysqldumpslow [ OPTS... ] [ LOGS... ] Parse and s

weixin_43102784的博客 2567

mysql 开启慢查询及其用mysqldumpslow做日志分析

面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> ...

guohao_Kwok的博客 149

Mysql慢查询日志分析及percona-toolkit的使用

开启慢查询日志 配置文件里边儿 slow_query_log=ON long_query_time=3 //这儿设置的超过3s slow_query_log_file=/var/lib/mysql/slow-log.log //记录慢查询日志对应的文件

zh_feiy的博客 1705

mysql mysqldumpslow windows_windows下mysql5.6.20使用mysqldumpslow.pl分析慢日志

要想执行mysqldumpslow.pl(这是perl程序),下载perl编译器。下载地址:http://pan.baidu.com/s/1i3GLKAp就是ActivePerl_5.16.2.3010812913.msi,一步一步安装后,将bin增加环境变量path。如今如果一个场景:现场的slow.log拿回来了,要在本地的windows环境上的mysql上分析。怎样处理?C:\Program...

weixin_32285411的博客 332

1014mysqldumpslow.pl简单分析慢日志 WINDOW平台

转自http://www.th7.cn/db/mysql/201507/113998.shtml 要想运行mysqldumpslow.pl(这是perl程序),下载perl编译器。下载地址:http://pan.baidu.com/s/1i3GLKAp 就是ActivePerl_5.16.2.3010812913.msi,一步一步安装后,将bin加入环境变量path。 现在假设一个...

163

windows下mysql5.6.20使用mysqldumpslow.pl分析慢日志

要想运行mysqldumpslow.pl(这是perl程序),下载perl编译器。下载地址:http://pan.baidu.com/s/1i3GLKAp     就是ActivePerl_5.16.2.3010812913.msi,一步一步安装后,将bin加入环境变量path。     现在假设一个场景:现场的slow.log拿回来了,要在本地的windows环境上的mysql上分析,如

关注系统性能调优 4957

MySQL慢查询日志

慢查询日志收集 # 慢查询日志记录存储方式 SHOW VARIABLES LIKE '%log_output%'; #记录到文件,推荐 SET GLOBAL log_output='FILE'; #记录到日志表 SET GLOBAL log_output='TABLE'; #混合 SET GLOBAL log_output='FILE,TABLE'; #...

baiyi6340的博客 87

(一)Mysql优化小技巧-开启并使用工具查看慢查询日志

Mysql优化问题首先需要先开启慢查询监控的功能。 1.使用语句showvariableslike'slow_query%'查询慢查询监控是否开启。 得到的结果为: slow_query_logOFF slow_query_log_fileE:\software\mysql-8.0.18-winx64\data\DESKTOP-79UV3JR-slow.log 2....

u012548939的专栏 251
下一篇: jdk安装及配置
hzq_ah
博客等级 码龄10年 4粉丝 3原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值