当前位置: 首页 > news >正文

关于Mysql开启慢查询日志报错:13 - Permission denied的解决方案

今天在使用docker创建mysql容器并启用慢查询时,使用的下面的指令:

docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=1234 \
-v /home/hl/mysql8/conf:/etc/mysql/conf.d \
-v /home/hl/mysql8/data:/var/lib/mysql \
-v /home/hl/mysql8/logs:/var/log/mysql \
mysql:8.0.19

我的my.cnf文件如下:

[mysqld]
# 开启慢查询日志
slow_query_log = on
# 慢查询日志路径
slow_query_log_file = /var/log/mysql/mysql-slow.log
# 慢查询阈值(单位:秒,超过此值的 SQL 会被记录)
long_query_time = 0.001
# 记录未使用索引的查询(可选)
# log_queries_not_using_indexes = 1

在进入容器内查看慢查询日志是否开启时,发现一直是OFF:

这说明配置文件中的slow_query_log并未加载,且直接使用set global slow_query_log = 1,也是会报错:

[HY000][29] File '/ var/ log/ mysql/ mysql-slow. log' not found (OS errno 13 - Permission denied)

解决方案:

问题出在 慢查询日志文件的权限或目录不存在,导致 MySQL 无法创建或写入日志文件。

解决步骤如下:

在容器内执行以下命令(注意:是在容器的 bash 终端,不是 MySQL 终端):

# 确保日志目录存在
mkdir -p /var/log/mysql# 手动创建慢查询日志文件
touch /var/log/mysql/mysql-slow.log# 赋予 MySQL 进程权限(关键:容器内 MySQL 通常以 mysql 用户运行)
chown -R mysql:mysql /var/log/mysql
chmod -R 755 /var/log/mysql

2. 重新设置慢查询日志并开启

文件创建后,进入 MySQL 终端配置:

# 进入 MySQL 终端
mysql -u root -p

在 MySQL 终端执行:

-- 设置慢查询日志文件路径(如果需要修改)
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';-- 开启慢查询日志
SET GLOBAL slow_query_log = ON;-- 验证配置
SHOW VARIABLES LIKE 'slow_query_log';  -- 应显示 ON
SHOW VARIABLES LIKE 'slow_query_log_file';  -- 应显示正确路径

问题得到了解决,重启容器再次查看也是开启的,究其原因,是我在创建挂载文件时没有创建mysql-slow.log文件,导致容器无法挂载,且没有权限创建...

http://www.lryc.cn/news/592577.html

相关文章:

  • 爬虫小知识(二)网页进行交互
  • 前端流式渲染流式SSR详解
  • 模板初阶和C++内存管理
  • 【软件重构】如何避免意外冗余
  • 高速公路自动化安全监测主要内容
  • A33-vstar报错记录:ERROR: build kernel Failed
  • 深入理解Linux文件I/O:系统调用与标志位应用
  • 广东省省考备考(第四十九天7.18)——判断推理:位置规律(听课后强化训练)
  • *SFT深度实践指南:从数据构建到模型部署的全流程解析
  • Linux | Bash 子字符串提取
  • Redis原理之哨兵机制(Sentinel)
  • Android性能优化之网络优化
  • 【锂电池剩余寿命预测】TCN时间卷积神经网络锂电池剩余寿命预测(Pytorch完整源码和数据)
  • 如何用Python并发下载?深入解析concurrent.futures 与期物机制
  • 安卓Android项目 报错:系统找不到指定文件
  • python学智能算法(二十四)|SVM-最优化几何距离的理解
  • 【52】MFC入门到精通——MFC串口助手(二)---通信版(发送数据 、发送文件、数据转换、清空发送区、打开/关闭文件),附源码
  • 『 C++ 入门到放弃 』- set 和 map 容器
  • Java Web项目Dump文件分析指南
  • 开源Docmost知识库管理工具
  • spring-cloud微服务部署转单体部署-feign直连调用
  • Windows Server 版本之间有什么区别?
  • 在断网情况下,网线直接连接 Windows 笔记本和 Ubuntu 服务器进行数据传输
  • 华为业务变革项目IPD基本知识
  • 【HCI log】Google Pixel 手机抓取hci log
  • 京东店铺入鼎的全面分析与自研难度评估
  • 70 gdb attach $pid, process 2021 is already traced by process 2019
  • CCF编程能力等级认证GESP—C++4级—20250628
  • 协作机器人操作与编程-PE系统示教编程和脚本讲解(直播回放)
  • 自动化面试题