共計(jì) 2515 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) mysql 中 slow query log 的示例分析,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
由于最近自己管理的 mysql 有出現(xiàn)查詢慢的情況,為了能夠查詢出慢查詢的 sql 語句,故啟動(dòng)了 mysql 的慢查詢?nèi)罩荆唧w啟動(dòng)慢查詢的方法有以下兩種:
1、直接登入 mysql, 更改 mysql 參數(shù).(注:登入賬號(hào)需有管理員權(quán)限)
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;
如果是這種方法的話,重啟數(shù)據(jù)庫(kù)之后就不生效了。
2、直接更改 my.conf
[mysqld]
log-slow-queries = /data/mysql.slow.log
long_query_time = 1
我本次使用的是第 2 種方法,但是重啟 mysql 之后發(fā)現(xiàn)慢查詢?nèi)罩緵]有生效,查詢了一下 mysql 日志,發(fā)現(xiàn)日志報(bào)如下錯(cuò)誤:
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.
出現(xiàn)這個(gè)情況,一般通過以下操作就可以解決:
touch /data/mysql.slow.log
chown mysql.mysql /data/mysql.slow.log
chmod o-r /data/mysql.slow.log
可是還是不行,再次認(rèn)真分析了下 log 發(fā)現(xiàn)主要還是 /data/mysql.slow.log 文件無法找到引起的,但是實(shí)際上 /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;
經(jīng)過自己的分析原因應(yīng)該是:好像不支持跨硬盤寫數(shù)據(jù)。
我的實(shí)際情況是這樣的,我以前的空間不夠用了,然后我再掛了一塊硬盤進(jìn)去了,且新硬盤 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
關(guān)于“mysql 中 slow query log 的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。