程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql——slow query log

mysql——slow query log

編輯:MySQL綜合教程

由於最近自己管理的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
# User@Host: 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;
經過自己的分析原因應該是:mysql好像不支持跨硬盤寫數據。
我的實際情況是這樣的,我以前的空間不夠用了,然後我再掛了一塊硬盤進去了,且新硬盤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
 
作者“飛揚”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved