首先说明下配置大部分可以直接执行命令动态配置,适用于不能重启mysql情况,比如线上服务器不能轻易重启,但是之后重启后配合 失效,还有一种就是直接修改配置文件,需要重启mysql后配置永久有效。
1、开启general_log :
在mysql命令行或者客户端管理工具中执行:SHOW VARIABLES LIKE "general_log%";
结果:
general_log OFF
general_log_file /var/lib/mysql/localhost.log
OFF说明没有开启日志记录
分别执行开启日志以及日志路径和日志文件名
SET GLOBAL general_log_file = '/var/lib/mysql/localhost.log';
SET GLOBAL general_log = 'ON';
还要注意
这时执行的所有sql都会别记录下来,方便查看,但是如果重启mysql就会停止记录需要重新设置
SHOW VARIABLES LIKE "log_output%";
如果是NONE,说明不输出,如果是file就是输出到日志文件,如果是table就是输出到mysql库中的general_log表中,这个按需配置,设置方式:
SET GLOBAL log_output='TABLE,FILE'
2、开启开启慢查询
mysql> show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name | Value |
+---------------------------+----------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /mysql/data/localhost-slow.log |
+---------------------------+----------------------------------+
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1.直接修改配置文件:
slow-query-log=1 --开启慢查询
slow_query_log_file="103-54-slow.log" --慢查询日志文件名,默认跟data目录相同路径
long_query_time=1 --超过1s认为是慢查询
重启mysql服务
2.设置全局变量:
将 slow_query_log 全局变量设置为“ON”状态
mysql> set global slow_query_log='ON';
设置慢查询日志存放的位置
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
查询超过1秒就记录
mysql> set global long_query_time=1;
3、开启开启未使用索引SQL过滤配置:
show variables like 'log_queries_not_using_indexes%';
+-----------------+---------------------+
| Variable_name | -- Value |
+-----------------+----------------------+
| log_queries_not_using_indexes| ON |
+-----------------+-----------------------+
配置方式、:
修改全局变量:
set global log_queries_not_using_indexes =1;
直接在配置文件中添加这一行就行或者:
log_queries_not_using_indexes =1
重启mysql 。