这里简单介绍两种方法开启MySQL的慢查询日志:
方法一:修改MySQL配置文件
Linux:
# vim /etc/my.cnf
log-slow-queries=/usr/local/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log;这个目录要有MySQL的运行帐号的可写权限,一般都将这个目录设置为MySQL的数据存放目录;)long_query_time=1 (记录超过的时间,默认为10s,1表示查询超过两秒才记录,0表示捕获所有查询)log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)log-long-format (如果设置了,所有没有使用索引的查询也将被记录)
保存后重启mysql服务即可加载配置
Windows:
在my.ini的[mysqld]添加如下语句:log-slow-queries = D:\www\mysql\log\mysqlslowquery.loglong_query_time = 1(其他参数如上)
保存后重启mysql服务即可加载配置
方法二:MySQL命令方式
# mysql -h服务器ip -u用户名 -p密码
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)