mysql开启慢日志

慢日志

1.开启慢日志

方式一
-- 查询是否开启慢日志  OFF为关闭状态,NO为开启状态
show variables like 'slow_query%';

-- 通过以下命令开启慢日志:
-- 开启慢日志
set global slow_query_log='ON'; 
-- 设置慢日志存放的位置
set global slow_query_log_file='D:\mysql-5.7.33-winx64\data\LAPTOP-JD2V280H-slow.log';
-- 会记录没有使用索引的查询sql,但前提是必须开启 slow_query_log='ON'
set global log-queries-not-using-indexes = 'ON';
-- 设置日志超过10秒就记录慢日志
set global long_query_time=10;
方式二
[mysqld]
slow_query_log = ON
slow_query_log_file = /home/local/mysql/data/slow.log
log-queries-not-using-indexes = on
long_query_time = 10

2.慢SQL参数

Time                 Id Command    Argument
# Time: 2022-03-21T09:13:39.037729Z
# User@Host: skip-grants user[root] @ localhost [::1]  Id:   520
# Query_time: 13.975245  Lock_time: 0.000091 Rows_sent: 766373  Rows_examined: 766373
use homepensioncloud;
SET timestamp=1647854019;
SELECT * from sys_user;
time: 记录日志的时间
User@Host: 执行的用户及主机
Query_time: 执行的时间
Lock_time: 锁表时间
Rows_sent: 发送给请求放的记录数,结果数量
Rows_examined: 语句扫描的记录条数
SET timestamp: 语句执行的时间点
select……: 执行的具体的SQL语句
<think>嗯,用户现在想在Debian系统上为MySQL 8开启慢查询日志功能。我之前已经给过他们关于如何配置慢查询日志的详细步骤,现在他们可能需要更具体的指导,特别是针对Debian系统的操作。让我先回顾一下之前的回答,看看有没有需要调整的地方。 首先,用户提到的引用[1]中提到了Debian11安装MySQL8以及使用systemctl管理服务的命令。这可能意味着他们在Debian系统上已经安装了MySQL 8,现在需要开启慢查询日志。根据之前的回答,配置方法包括修改配置文件和动态设置。但用户可能更关心Debian下的具体路径和步骤,比如配置文件的位置。 根据引用[5],用户可能在配置/etc/my.cnf时遇到了错误。之前的回答中提到配置文件可能在/etc/mysql/my.cnf或其他路径,但Debian系统通常使用/etc/mysql/mysql.conf.d/mysqld.cnf。需要确认这一点,避免用户出现配置错误。比如,如果在错误的文件中添加配置,会导致MySQL启动失败,如引用[5]中的报错。 接下来,用户可能需要知道如何编辑正确的配置文件。在Debian中,通常配置文件位于/etc/mysql/mysql.conf.d/mysqld.cnf,而不是/etc/my.cnf。所以,在步骤中需要明确指出这一点,避免用户犯错。 然后,开启慢查询日志的步骤包括设置slow_query_log=1,指定日志文件路径,设置long_query_time。用户可能还需要知道如何重启MySQL服务,使用systemctl命令,如引用[1]中的systemctl restart mysql。同时,要提醒用户检查配置是否正确,避免语法错误导致服务无法启动,如引用[5]中的问题。 另外,用户可能关心如何验证日志是否生效。可以建议他们执行一个慢查询,比如SELECT SLEEP(3),然后检查日志文件是否有记录。同时,使用SHOW VARIABLES命令确认参数是否正确应用。 还要注意权限问题,确保MySQL用户有权限写入指定的日志文件路径。如果用户自定义路径,可能需要创建文件并设置正确的所有者,比如mysql:mysql。 此外,引用[4]提到清理日志文件的方法,用户可能在配置后需要管理日志文件,可以建议他们定期清理或使用日志轮转工具,但当前问题主要是开启日志,这部分可能作为后续建议。 总结一下,用户需要具体的Debian下MySQL 8的配置步骤,包括正确的配置文件路径、编辑配置、重启服务、验证和权限处理。同时需要避免常见的配置错误,如语法问题或文件路径错误,引用[5]中的错误示例需要注意。需要将这些细节整理成清晰的步骤,确保用户能顺利开启慢查询日志。</think>#### 在Debian系统上为MySQL 8开启慢查询日志的完整步骤 --- ### 一、定位并修改MySQL配置文件 1. **确认配置文件路径** Debian系统下MySQL 8的配置文件通常位于以下路径: ``` /etc/mysql/mysql.conf.d/mysqld.cnf ``` 使用以下命令编辑: ```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 2. **添加慢查询配置参数** 在`[mysqld]`配置段中添加以下参数(若已存在则修改): ```ini slow_query_log = 1 # 开启慢查询日志(1=ON,0=OFF) long_query_time = 2 # 阈值(单位:秒,默认10秒) slow_query_log_file = /var/log/mysql/mysql-slow.log # 自定义日志路径 log_queries_not_using_indexes = 1 # 可选:记录未使用索引的查询 ``` **注意**: - 日志文件需确保MySQL用户(通常为`mysql:mysql`)有写入权限 - 若路径不存在,需手动创建并赋权: ```bash sudo mkdir -p /var/log/mysql sudo chown mysql:mysql /var/log/mysql ``` 3. **保存并退出编辑器** 按`Ctrl+O`保存,`Ctrl+X`退出nano。 --- ### 二、重启MySQL服务使配置生效 ```bash sudo systemctl restart mysql # 重启MySQL服务[^1] sudo systemctl status mysql # 检查服务状态是否正常 ``` **若重启失败**: - 检查配置文件语法(如`[mysqld]`段是否正确、参数拼写无误) - 错误排查命令: ```bash sudo journalctl -u mysql.service -n 50 # 查看最后50条日志 ``` --- ### 三、验证慢查询日志配置 1. **确认参数生效** 登录MySQL后执行: ```sql SHOW VARIABLES LIKE 'slow_query_log%'; -- 检查日志状态及路径 SHOW VARIABLES LIKE 'long_query_time'; -- 确认阈值 ``` 输出示例: ``` +---------------------+-----------------------------+ | Variable_name | Value | +---------------------+-----------------------------+ | slow_query_log | ON | | slow_query_log_file | /var/log/mysql/mysql-slow.log | +---------------------+-----------------------------+ ``` 2. **触发测试慢查询** 执行一个超过阈值的SQL: ```sql SELECT SLEEP(3); -- 耗时3秒的查询 ``` 检查日志文件是否生成: ```bash sudo tail -f /var/log/mysql/mysql-slow.log ``` --- ### 四、动态调整(可选,无需重启) 若需临时修改参数(重启后失效): ```sql SET GLOBAL slow_query_log = 'ON'; -- 开启日志 SET GLOBAL long_query_time = 2; -- 修改阈值 SET GLOBAL slow_query_log_file = '/new/path.log';-- 修改路径 ``` --- ### 五、日志管理建议 1. **定期清理日志** ```bash sudo truncate -s 0 /var/log/mysql/mysql-slow.log # 清空文件(保留权限) ``` 或使用`logrotate`工具配置自动轮转[^4]。 2. **禁用日志(调优完成后)** 修改配置文件`slow_query_log=0`后重启服务,或动态关闭: ```sql SET GLOBAL slow_query_log = 'OFF'; ``` --- ### 常见问题解决 - **权限问题** 若日志文件无法生成,检查目录权限: ```bash sudo chown -R mysql:mysql /var/log/mysql ``` - **配置文件语法错误** 若重启失败,检查是否在`[mysqld]`段内添加参数,避免缺少分组标签[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值