標籤:
如何開啟mysql的慢查詢
Linux查看mysql 安裝路徑
一、查看檔案安裝路徑
由於軟體安裝的地方不止一個地方,所有先說查看檔案安裝的所有路徑(地址)。
這裡以mysql為例。比如說我安裝了mysql,但是不知道檔案都安裝在哪些地方、放在哪些檔案夾裡,可以用下面的命令查看所有的檔案路徑
在終端輸入:
whereis mysql
斷行符號,如果你安裝好了mysql,就會顯示檔案安裝的地址,例如我的顯示(安裝地址可能會不同)
- [[email protected] ~]# whereis mysql
- mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
複製代碼
二、查詢運行檔案所在路徑(檔案夾地址)
如果你只要查詢檔案的運行檔案所在地址,直接用下面的命令就可以了(還是以mysql為例):
which mysql
終端顯示:
[[email protected] ~]# which mysql
/usr/bin/mysql
方法一:修改mysql的my.cnf檔案
Linux:
在mysql設定檔/etc/my.cnf中[mysqld]選項下增加:
vi /etc/my.cnf
log-slow-queries=/usr/local/mysql/slowquery.log (指定記錄檔存放位置,可以為空白,系統會給一個預設的檔案host_name-slow.log)
long_query_time=1 (記錄超過的時間,預設為10s)
log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據情況決定是否開啟)
log-long-format (如果設定了,所有沒有使用索引的查詢也將被記錄)
Windows:
在my.ini的[mysqld]添加如下語句:
log-slow-queries = D:\www\mysql\log\mysqlslowquery.log
long_query_time = 1(其他參數如上)
儲存後重啟mysql即可載入配置
注意
llog-slow-queries=/usr/local/mysql/slowquery.log 為慢查詢日誌存放的位置,一般這個目錄要有MySQL的運行帳號的可寫入權限,一般都將這個目錄設定為MySQL的資料存放目錄;
long_query_time=1中的1表示查詢超過兩秒才記錄;
方法二:命令方式
cd /usr/local/mysql/bin
mysql -u root -p
enter password
mysql> show variables like ”%long%”; //查看一下預設為慢查詢的時間10秒
+—————–+———–+
| Variable_name | Value |
+—————–+———–+
| long_query_time | 10.000000 |
+—————–+———–+
1 row in set (0.00 sec)
mysql> set global long_query_time=2; //設定成2秒,加上global,下次進mysql已然生效
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like ”%slow%”; //查看一下慢查詢是不是已經開啟
+———————+———————————+
| Variable_name | Value |
+———————+———————————+
| log_slow_queries | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /usr/local/mysql/mysql-slow.log |
+———————+———————————+
4 rows in set (0.00 sec)
mysql> set slow_query_log=’ON’; //加上global,不然會報錯的。
ERROR 1229 (HY000): Variable ’slow_query_log’ is a GLOBAL variable and should be set with SET GLOBAL
mysql> set global slow_query_log=’ON’; //啟用慢查詢
Query OK, 0 rows affected (0.28 sec)
mysql> show variables like ”%slow%”; //查看是否已經開啟
+———————+———————————+
| Variable_name | Value |
+———————+———————————+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /usr/local/mysql/mysql-slow.log |
+———————+———————————+
4 rows in set (0.00 sec)
Mysql slow query log