精华内容
下载资源
问答
  • MySQLdumpslow是mysql自带的一种慢查询日志分析工具,顾名思义,就是查询那些出那些查询慢的SQL语句,由此分析出SQL查询效率慢的原因。通常来说,mysqldumpslow分组查询的结果是相似的,它在展示统计结果时,可以将...

    MySQLdumpslow是mysql自带的一种慢查询日志分析工具,顾名思义,就是查询那些出那些查询慢的SQL语句,由此分析出SQL查询效率慢的原因。

    通常来说,mysqldumpslow分组查询的结果是相似的,它在展示统计结果时,可以将数字和字符串分别抽象成“N”和“S”。当然也可以用-a 和 -n选项可以用来修改这些抽象的行为。

    mysqldumpslow查询命令

    mysqldumpslow [options] [log_file]

    mysqldumpslow可选参数(options),如下:

    -a : 不将数字抽象成N,字符串抽象成S。

    示例:

    mysql%mysqldumpslow /home/mysql/logs/slow_query.log

    Reading mysql slow query log from /home/mysql/logs/slow_query.log

    Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), FAVDBA[FAVDBA]@[10.1.45.51]

    # Schema:  Last_errno: N  Killed: N

    # Query_time: N.N  Lock_time: N.N  Rows_sent: N  Rows_examined: N  Rows_affected: N

    # Bytes_sent: N

    SET timestamp=N;

    SELECT EVENT_NAME, EVENT_SCHEMA, EVENT_DEFINITION FROM INFORMATION_SCHEMA.EVENTS

    mysql%mysqldumpslow -a /home/mysql/logs/slow_query.log

    Reading mysql slow query log from /home/mysql/logs/slow_query.log

    Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), FAVDBA[FAVDBA]@[10.1.45.51]

    # Schema:  Last_errno: 0  Killed: 0

    # Query_time: 0.004095  Lock_time: 0.002907  Rows_sent: 0  Rows_examined: 0  Rows_affected: 0

    # Bytes_sent: 140

    SET timestamp=1451270206;

    SELECT EVENT_NAME, EVENT_SCHEMA, EVENT_DEFINITION FROM INFORMATION_SCHEMA.EVENTS

    -n N : 将数字抽象显示成至少指定的位数

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 测试工程师在测试软件的过程中,流程往往是先接口测试,接着就是功能性测试。在做功能性测试的时候,往往有这么一个工作场景,就是出现错误后,我们怎么快速排除数据库报错。...Mysql日志,是用来记录数据...

    测试工程师在测试软件的过程中,流程往往是先接口测试,接着就是功能性测试。在做功能性测试的时候,往往有这么一个工作场景,就是出现错误后,我们怎么快速排除数据库报错。

    7262ffeaf597cd743270560f1c636662.png

    举例某个电商网站,当我们文本框中输入“电视机”,点击搜索按钮,如果网站显示的结果是错误的,那测试人员有必要去数据库检查。但是我们怎么才能快速定位bug呢?这个时候,我们就需要使用mysql日志来解决这个问题。

    Mysql日志,是用来记录数据库所有增删改查操作的,测试人员可以利用该工具查看软件某功能执行的sql语句,看到sql语句操作的哪个数据仓库,哪个表,方便测试人员快速定位bug。

    但Mysql日志,一般都是都是关闭的,因为日志会耗费数据库5%-10%的性能,一般在查找问题时才打开,完成后及时关闭。

    本文将详细阐述在在navicat中如何使用mysql日志。此篇文章将按照以下几个步骤展开:

    1. 第一步,从网盘上下载对应软件
    2. 第二步,客户端连接mysql
    3. 第三步,查询日志状态
    4. 第四步,开启日志
    5. 第五步,查看日志
    6. 第六步,关闭日志

    第一步——安装navicat

    目标:下载配套软件+软件安装

    步骤:从百度网盘直接下载navicat软件并进行安装

    下载地址:

    链接:https://pan.baidu.com/share/init?surl=tLLNKTkcrtp4-H6BzwYx0w 提取码:8e67

    提示:navicat是测试人员在进行数据库操作的时候最常用的一款navicat软件。

    安装方法:百度网盘下载navicat软件后,双击navicat软件图标, 一路下一步,安装完成即可。

    第二步 —— navicat连接mysql

    目标:客户端连接mysql(可以使用连接服务器的putty工具,也可以直接使用linux终端)

    步骤:如下图所示

    63f9a48c8704c9f1b885e922aea0df50.png

    小结:一定要实现navicat客户端连接mysql,步骤非常简单。

    第三步 —— 开启mysql日志

    目标:开启mysql日志

    步骤:开启日志分为以下2步:

    step1:查看日志状态,如果日志为Off,则需要开启。查询方法,输入以下代码即可
    show variables like 'general%';
    运行

    470a4577fb87127b2a529b3d7ee14f11.png

    step2:开启日志。非常简单,只需要在查询编辑中运行以下命令,即可set global general_log=1;选中——>右键运行已选择,则查询编辑打开

    5702571f8e5c7c9b11c3297084b64108.png

    step3:查看日志状态,日志状态为on,则为日志状态开启。show variables like 'general%';运行

    684e75389fdea471ad3730ebbad989e1.png

    小结:备份非常简单。两步就完成了。

    第四步 ——打开日志文件

    目标:如果数据误删,知道如何恢复数据

    步骤:开启步骤仅为以下2步

    step1:使用su命令,实现普通用户切换成root用户step2 : 输入tail -f 日志路径 打开日志文件

    5f06d120c4c03ed4437798e9d3f5f92d.png

    第五步 ——输入sql语句(类似于点击查询按钮),查看日志显示

    目标:输入sql语句(类似于点击查询按钮),

    步骤:查看日志步骤仅为以下2步

    step1:在查询编辑器中输入sql语句(类似于点击查询按钮)

    153aa8086f0d459168dcf3a64398e2a7.png

    step2:在日志中查看,通过操作时间先定位sql语句,通过sql语句下方的详细信息,定位数据仓库和数据表,方便测试人员快速定位bug。

    9b189a072405ac4583f714bfa6154ba3.png

    第六步 ——关闭日志

    目标:关闭日志,否则会耗费数据库5%-10%的性能

    步骤:关闭日志,步骤仅为以下1步

    382a528a7fc4ff4d4c87d03a7f3ebe4d.png

    总结

    以上5步,就是我们使用navicat进行数据备份和恢复的全部步骤。我们来回顾下

    第一步,就是从百度网盘下载navicat软件。下完后要进行安装。
    第二步,要让navicat连接Mysql
    第三步,查询日志状态
    第四步,开启日志
    第五步,查看日志
    第六步,关闭日志

    好的,赶紧按照我们的技术文章来尝试使用mysql日志吧。掌握使用mysql日志的方法,就能提高排除bug的速度哦。加油。

    展开全文
  • 如何在 Linux 上用 SQL 语句来查询 Apache 日志 Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么。的确,系统日志是系统管理员在解决系统和应用问题...

    如何在 Linux 上用 SQL 语句来查询 Apache 日志

    Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么。的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源。我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志。

    这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 asql。asql 是一个开源的工具,它能够允许使用者使用 SQL 语句来查询日志,从而通过更加友好的格式展现相同的信息。

    Apache 日志背景知识

    Apache 有两种日志:

    • Access log:存放在路径 /var/log/apache2/access.log (Debian) 或者 /var/log/httpd/access_log (Red Hat)。Access Log 记录所有 Apache web server 执行的请求。
    • Error log:存放在路径 /var/log/apache2/error.log (Debian) 或者 /var/log/httpd/error_log (Red Hat)。Error log 记录所有 Apache web server 报告的错误以及错误的情况。Error 情况包括(不限于)403(Forbidden,通常在请求被拒绝访问时被报告),404(Not found,在请求资源不存在时被报告)。

    虽然管理员可以通过配置 Apache 的配置文件来自定义 Apache access log 的详细程度,不过在这篇文章中,我们会使用默认的配置,如下:

    
    
    1. 远程 IP - 请求时间 - 请求类型 - 响应代码 - 请求的 URL - 远程的浏览器信息 (也许包含操作系统信息)

    因此一个典型的 Apache 日志条目就是下面这个样子:

    
    
    1. 192.168.0.101 - - [22/Aug/2014:12:03:36 -0300] "GET /icons/unknown.gif HTTP/1.1" 200 519 "http://192.168.0.10/test/projects/read_json/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0"

    但是 Apache error log 又是怎么样的呢?因为 error log 条目主要记录 access log 中特殊的请求(你可以自定义),所以你可以通过 access log 来获得关于错误情况的更多信息(example 5 有更多细节)。

    此外要提前说明的, access log 是系统级别的日志文件。要分析虚拟主机的日志文件,你需要检查它们相应的配置文件(例如: 在 /etc/apache2/sites-available/[virtual host name] 里(Debian))。

    在 Linux 上安装 asql

    asql 由 Perl 编写,而且需求以下两个 Perl 模块:SQLite 的 DBI 驱动以及 GNU readline。

    在 Debian, Ubuntu 以及其衍生发行版上安装 asql

    使用基于 Debian 发行版上的 aptitude,asql 以及其依赖会被自动安装。

    
    
    1. # aptitude install asql

    在 Fedora,CentOS,RHEL 上安装 asql

    在 CentOS 或 RHEL 上,你需要启用 EPEL repository,然后运行以下代码。在 Fedora 中,直接运行以下代码:

    
    
    1. # sudo yum install perl-DBD-SQLite perl-Term-Readline-Gnu
    2. # wget http://www.steve.org.uk/Software/asql/asql-1.7.tar.gz
    3. # tar xvfvz asql-1.7.tar.gz
    4. # cd asql
    5. # make install

    asql 是如何工作的?

    从上面代码中的依赖中你就可以看出来,asql 转换未结构化的明文 Apache 日志为结构化的 SQLite 数据库信息。生成的 SQLite 数据库可以接受正常的 SQL 查询语句。数据库可以通过当前以及之前的日志文件生成,其中也包括压缩转换过的日志文件,类似 access.log.X.gz 或者 access_log.old。

    首先,从命令行启动 asql:

    
    
    1. # asql

    你会进入 asql 内置的 shell 交互界面。

    输入 help 列表可执行的命令:

    首先在 asql 中加载所有的 access 日志:

    
    
    1. asql > load <apache-access-logs 的路径>

    比如在 Debian 下:

    
    
    1. asql > load /var/log/apache2/access.*

    在 CentOS/RHEL 下:

    
    
    1. asql > load /var/log/httpd/access_log*

    当 asql 完成对 access 日志的加载后,我们就可以开始数据库查询了。注意一下,加载后生成的数据库是 "temporary" (临时)的,意思就是数据库会在你退出 asql 的时候被清除。如果你想要保留数据库,你必须先将其保存为一个文件。我们会在后面介绍如何这么做(参考 example 3 和 4)。

    生成的数据库有一个名为 logs 的表。输入下面的命令列出 logs 表中提供的域:

    一个名为 .asql 的隐藏文件,保存于用户的 home 目录下,记录用户在 asql shell 中输入的命令历史。因此你可以使用方向键浏览命令历史,按下 ENTER 来重复执行之前的命令。

    asql 上的示例 SQL 查询

    下面是几个使用 asql 针对 Apache 日志文件运行 SQL 查询的示例:

    Example 1:列出在 2014 年 10 月中请求的来源 / 时间以及 HTTP 状态码。

    
    
    1. SELECT source, date, status FROM logs WHERE date >= '2014-10-01T00:00:00' ORDER BY source;

    Example 2:从小到大显示单个客户端处理的请求大小(bytes)。

    
    
    1. SELECT source, SUM(size), AS NUMBER FROM logs GROUP BY source ORDER BY Number DESC;

    Example 3:在当前目录中保存数据库为 [filename]。

    
    
    1. save [filename]

    这样做可以避免使用 load 命令对日志的语法分析所占用的处理时间。

    Example 4:在重新进入 asql 后载入数据库。

    
    
    1. restore [filename]

    Example 5:返回 access 日志中记录的 error 情况。在这个例子中,我们将显示所有返回 HTTP 状态码为 403(access forbidden)的请求。

    
    
    1. SELECT source, date, status, request FROM logs WHERE status='403' ORDER BY date

    这个例子想要表现的是:虽然 asql 只分析 access 日志,我们还是可以通过使用请求的状态域来显示有 error 情况的请求。

    小结:

    我们体验了 asql 如何帮助我们分析 Apache 日志文件,并将结果通过友好的格式输出。虽然你也可以通过使用命令行的工具(例如 cat 与 grep,uniq,sort,wc 等等之间的管道)来实现类似功能,与此比较起来 asql 展示了它如同瑞士军刀一般的强大功能,使我们在自己的需求下能够通过标准 SQL 查询语句来过滤日志。

    希望这篇教程能帮助到你们。

    请不要拘束地将评论文章,分享文章,提出疑问。

    原文发布时间:2014-12-09

    本文来自云栖合作伙伴“linux中国”

    展开全文
  • Mysql数据库查询sql执行日志

    千次阅读 2019-07-26 15:15:28
    mysql数据库查询sql执行日志(linux环境下)1、登录数据库确认是否开启了日志2、查询日志文件3、使用mysql自带的mysqlbinlog查询二进制文件 1、登录数据库确认是否开启了日志 mysql -uroot -p 登录成功之后查询操作...

    1、登录数据库确认是否开启了日志

    mysql -uroot -p
    

    登录成功之后查询操作日志是否开启

    mysql>show variables like 'log_bin';
    

    在这里插入图片描述
    on表示已开启,如果未开启则去开启日志,查看配置文件my.cnf是否有关于log_bin的配置
    在这里插入图片描述
    如果没有则加上

    server_id=1918         
    log_bin = mysql-bin
    binlog_format = ROW
    

    保存以后重启mysql

    2、查询日志文件

    登录数据库查询当前日志

    mysql>show master status;
    

    在这里插入图片描述
    查询所有日志,下面两个命令的效果是一样的

    mysql>show master logs;
    mysql>show binary logs;
    

    在这里插入图片描述

    3、使用mysql自带的mysqlbinlog查询二进制文件

    在mysql的data目录下找到想要查看的日志文件
    在这里插入图片描述
    使用mysqlbinlog命令查看日志

    mysqlbinlog ./mysql-bin.000475 -v
    

    不推荐这种做法,直接在服务器上查看所有的日志,打印的日志过长,无法查找到想要的日志。

    -d database 筛选出要查询的数据库操作记录  
    --start-datetime="yyyy-MM-dd HH:mm:ss"  获取特定时间开始的记录
    -s 或者 --short-form 只查询SQL语句
    --stop-datatime="yyyy-MM-dd HH:mm:ss"  获取特定时间结束的记录
    

    更多过滤条件请点击查看

    增加上述条件,将时间段压缩即可在服务器上直接查询。

    mysqlbinlog -d deep_creator --start-datetime='2019-07-25 10:54:00' --stop-datetime='2019-07-25 10:55:00' -s ./mysql-bin.000475 -v
    
    

    如果想要查询更多的信息,推荐使用mysqlbinlog工具将二进制转化后的结果导出指定文件下,使用vim/cat命令或者加载到本地再去查看日志。例如使用linux的重定向命令将将某个时间段内的日志导出到txt文件,将上述命令-v替换为 >(dir/)filename。如下所示:

    mysqlbinlog -d deep_creator --start-datetime='2019-07-25 10:30:00' --stop-datetime='2019-07-25 11:00:00' -s ./mysql-bin.000475 > a.txt
    

    得到a.txt日志文件
    在这里插入图片描述
    下载以后打开查看即可

    展开全文
  • 所谓慢查询即一条sql语句的查询时间超过了预定义好的规定查询时间,这些语句是要记录下来做语句优化使用的,下面是如何记录慢查询语句的方法:1、先查看是否开启慢查询日志功能:MySQL> show global variables ...
  • mysql慢查询日志分析上一篇 / 下一篇 2007-12-05 11:40:21 / 个人分类:学习进行时~~~~查看( 476 ) / 评论( 0 ) / 评分( 0 / 0 )有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这...
  • 对于跟踪有问题的查询来说mysql慢查询日志是非常有用的衣柜功能,它可以为我们分析当前程序里有很耗费资源的sql语句,那么你知道如何打开mysql慢查询日志吗?现在我们去了解了解mysql开启慢查询日志记录的方法。其实...
  • Linux-mysql慢查询日志

    2020-02-23 15:39:35
    查询日志记录了所有执行时间超过long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有sql语句的日志。 默认情况下,***管理语句和不使用索引进行的语句***不会记录到慢查询日志中。 二.mysql慢...
  • 对于跟踪有问题的查询来说mysql慢查询日志是非常有用的衣柜功能,它可以为我们分析当前程序里有很耗费资源的sql语句,那么你知道如何打开mysql慢查询日志吗?其实打开mysql的慢查询日志很简单,只需要在mysql的配置...
  • 1.配置 2.效果
  • 所谓慢查询即一条sql语句的查询时间超过了预定义好的规定查询时间,这些语句是要记录下来做语句优化使用的,下面是如何记录慢查询语句的方法:1、先查看是否开启慢查询日志功能:mysql> show global variables ...
  • 查询慢查询相关参数 show variables like '%quer%'; slow_query_log(是否记录慢查询) slow_query_log_file(慢日志文件路径) ...开启慢查询日志Linux) 在/etc/my.cnf...
  • mysql5.6 开启慢查询日志 #开启慢查询日志记录 slow_query_log=1 #查询时间超过0.1秒的sql语句会被记录 long_query_time=2 #记录没有使用索引的查询 log_queries_not_using_indexes=1 #记录慢查询...
  • Linux下查看查询日志

    千次阅读 2017-05-26 15:57:32
    在 /etc/my.cnf 下的 my.cnf 的文件中添加  slow_query_log =1  slow_query_log_file = /tmp/mysqlslow.log 查看查询慢的sql  tailf /tmp/mysqlslow.log
  • MySQL查看日志SQL语句[Linux]

    千次阅读 2018-05-11 09:03:56
    前提 操作 1. 查看MySQL是否开启binlog 2. 查询binlog文件名 3. 查mysqlbinlog工具...5. 将mysql日志内容输入某个文件中.(-v显示sql语句) 前提 MySQL开启了binlog日志 操作 1. 查看MySQL是否...
  • MySql提供慢SQL日志的功能,能够记录下响应时间超过一定阈值的SQL查询,以便于我们定位糟糕的查询语句。 首先,查询当前mysql数据库是否开启了慢查询日志功能: mysql -uroot -p ****** show VARIABLES like '%...
  • 页面会显示是否开启了慢查询日志,slow_query_log =ON,代表已经开启 如果未开启,则需要执行该命令 set global slow_query_log=on; 通过设置log_queries_not_using_indexes开启为使用索引的监控 输入
  • Linux 下MySql日志查看

    2020-07-14 21:09:04
    查看所有日志状态 mysql> show global variables like '%log%'; 设置某个日志开启 mysql> set global general_log = on; ##日志文件路径字段 通用日志 general_log_file sql语句执行的记录 ...慢查询日志s
  • 操作步骤 首先使用用户登录linux客户端,执行命令 mysql -u mjb -p, mjb是数据库用户名...页面会显示是否开启了慢查询日志,slow_query_log =ON,代表已经开启 如果未开启,则需要执行该命令set global slow_que...
  • 转... 1、进入MySQL服务器,执行 或者直接在mysql客户端navicat执行以下sql show VARIABLES like '%slow%' 2、在linux种编辑my.cnf命令 /etc/my.cnf 在【mysqld】下增加 slow_query...
  • 查询日志可以通过参数long_query_time来设置时间,当sql语句执行超过指定的时间,就会被记录下来,用来进行sql调优。还有一个参数log_queries_not_using_indexs,如果运行的sql语句没有使用索引,就会记录下来。...
  • 在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL...1. 开启MySQL的慢查询日志功能默认情况下,MySQL是不会记录超过一定执行...
  • linux日志分析

    2019-02-15 14:28:22
    基本操作 查询日志内容 grep查询 cd log grep ‘查询内容’ SystemOut.log grep -e “正则表达式” SystemOut...查询日志中最多次出现语句(实际在日志中可分析出最多出现的sql或者uuid) cat SystemOut.log | awk ...
  • 查询日志

    2016-05-16 23:02:00
    慢查询:让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。... 其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[my
  • 3. 详解日志MySQL日志:主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的...
  • 在运营网站的过程中,可能会遇到网站突然变慢的问题,一般情况下和 MySQL 慢有关系,可以通过开启慢查询,找到影响效率的 SQL ,然后采取相应的措施。下面介绍一下如何开启慢查询:1、开启慢查询找到 MySQL 的配置...
  • mysql慢查询日志可以用来跟踪有问题的查询,可以用来分析当前程序里严重耗费资源的sql语句。打开mysql的慢查询日志,只要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 361
精华内容 144
关键字:

linuxsql查询日志

linux 订阅