mysql中slow query log的示例分析

51次阅读
没有评论

共计 2515 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 mysql 中 slow query log 的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

由于最近自己管理的 mysql 有出现查询慢的情况,为了能够查询出慢查询的 sql 语句,故启动了 mysql 的慢查询日志,具体启动慢查询的方法有以下两种:
1、直接登入 mysql, 更改 mysql 参数.(注:登入账号需有管理员权限)
mysql set global log_slow_queries=on;
mysql set global slow_query_log_file=/data/mysql.slow.log;
mysql set global long_query_time=1;
如果是这种方法的话,重启数据库之后就不生效了。
2、直接更改 my.conf
[mysqld]
log-slow-queries = /data/mysql.slow.log
long_query_time = 1
我本次使用的是第 2 种方法,但是重启 mysql 之后发现慢查询日志没有生效,查询了一下 mysql 日志,发现日志报如下错误:
110907 18:28:04  InnoDB: Started; log sequence number 0 4245951191
/usr/libexec/mysqld: File /data/mysql.slow.log not found (Errcode: 13)
110907 18:28:04 [ERROR] Could not use /data/mysql.slow.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
出现这个情况,一般通过以下操作就可以解决:
touch /data/mysql.slow.log
chown mysql.mysql /data/mysql.slow.log
chmod o-r /data/mysql.slow.log
可是还是不行,再次认真分析了下 log 发现主要还是 /data/mysql.slow.log 文件无法找到引起的,但是实际上 /data/mysql.slow.log 文件是存在的;没办法一下子没找到原因,先把慢查询文件路径改为 /var/log/mysql-slow.log 试试,这样就行了。
110907 18:39:57 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
110907 18:39:57 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110907 18:39:57 [Warning] –log_slow_queries is deprecated and will be removed in a future release. Please use –slow_query_log / –slow_query_log_file instead.
110907 18:39:57  InnoDB: Started; log sequence number 0 4245951191
110907 18:39:57 [Note] Event Scheduler: Loaded 0 events
110907 18:39:57 [Note] /usr/libexec/mysqld: ready for connections.
Version: 5.1.52-log   socket: /var/lib/mysql/mysql.sock   port: 3306  Source distribution
[root@localhost log]# ll |grep mysql
-rw-r—–. 1 mysql mysql 512181 Sep  7 18:39 mysqld.log
-rw-r–r–. 1 mysql mysql  422 Sep  7 18:41 mysql-slow.log
[root@localhost log]# cat  mysql-slow.log
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time  Id Command  Argument
# Time: 110907 18:41:29
# : root[root] @ localhost []
# Query_time: 1.512086  Lock_time: 0.000001 Rows_sent: 26  Rows_examined: 2443129
use idmanage;
SET timestamp=1315392089;
select type,count(*) from client where status=1 group by type;
经过自己的分析原因应该是:好像不支持跨硬盘写数据。
我的实际情况是这样的,我以前的空间不够用了,然后我再挂了一块硬盘进去了,且新硬盘 mount 的路径就是 /data。
[root@localhost log]# df -h
Filesystem  Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
  7.0G  6.6G  12M 100% /
tmpfs  250M  0  250M  0% /dev/shm
/dev/sda1  485M  29M  432M  7% /boot
/dev/mapper/VolGroup-lv_file
  485M  11M  449M  3% /file
/dev/sdb1  9.9G  8.1G  1.3G  87% /data
 

关于“mysql 中 slow query log 的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计2515字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)