mysql 5.7 慢查询配置_MYSQL5.7.9开启慢查询日志的技巧

本文介绍了在ZABBIX2.4.7中使用MYSQL5.7.9作为监控数据库时遇到的慢查询日志膨胀问题。作者尝试通过配置文件/etc/my.cnf来设置慢查询日志,但遇到了权限问题。日志文件路径被设置为/MYSQLDATA/mysql_slow_query.log,但因权限不足导致无法写入。解决方案包括检查文件权限、确保mysql用户有权访问该路径,以及正确配置long_query_time等参数。同时,文章还提供了查询慢查询时间、查看慢查询配置和日志路径的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用MYSQL 5.7.9 作为ZABBIX 2.4.7 的监控数据库. 前段时间开启了慢查询日志, 后来发现慢查询日志膨胀到了700M

查看最后100条 大部分都是 0.1 秒的 后来想改, 以前是动态设置的 set global slow_query_log=1; 方式的 .

然后想直接用配置文件/etc/my.cnf 配慢查询

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at % of total RAM for dedicated server, else %.

innodb_buffer_pool_size = M

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

# These are commonly set, remove the # and set as required.

basedir = /LANMP/mysql

datadir = /MYSQLDATA/data

port =

# server_id = .....

socket = /tmp/mysql.sock

# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

join_buffer_size = M

sort_buffer_size = M

read_rnd_buffer_size = M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

character_set_server=utf

init_connect='SET NAMES utf'

slow_query_log =

slow_query_log_file = /MYSQLDATA/mysql_slow_query.log

long_query_time =

log_queries_not_using_indexes = ON

反复启动了好多次 service mysqld restart

mysql> show variables like '%query%';

+------------------------------+---------------------------------+

| Variable_name | Value |

+------------------------------+---------------------------------+

| binlog_rows_query_log_events | OFF |

| ft_query_expansion_limit | 20 |

| have_query_cache | YES |

| long_query_time | 5.000000 |

| query_alloc_block_size | 8192 |

| query_cache_limit | 1048576 |

| query_cache_min_res_unit | 4096 |

| query_cache_size | 1048576 |

| query_cache_type | OFF |

| query_cache_wlock_invalidate | OFF |

| query_prealloc_size | 8192 |

| slow_query_log | ON |

| slow_query_log_file | /MYSQLDATA/mysql_slow_query.log |

+------------------------------+---------------------------------+

13 rows in set (0.00 sec)

老是OFF 状态 而其他的 LONG_QUERY_TIME 得到了改变 5秒

用动态方式设置 报错

mysql> set global slow_query_log=1;

ERROR 29 (HY000): File '/MYSQLDATA/mysql_slow_query.log' not found (Errcode: 13 - Permission denied)

对我已经把它给删了, 为傻不自己创建个?

只好自己touch 一个

还是报错 ?

ps -ef |grep mysqld 发现 还有个mysql用户启动了mysql

看来 是用mysql用户读取慢查询日志的 用户权限问题啦

下面给大家介绍开启mysql慢查询日志

查看配置:

//查询慢查询时间

show variables like "long_query_time";默认10s

//查看慢查询配置情况

show status like "%slow_queries%";

//查看慢查询日志路径

show variables like "%slow%";

修改配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值