启用mysql日志记录执行过的sql并且开启慢查询记录所有超过慢查询时间的SQL以及未使用索引SQL

首先说明下配置大部分可以直接执行命令动态配置,适用于不能重启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 。


猜你喜欢

转载自blog.csdn.net/u014180504/article/details/73826679
今日推荐