Mysql运维之日志管理

大萱姑娘_5879

大萱姑娘_5879

2020-06-01

1875人浏览

原创

一般成熟的软件,都会有自己的日志文件。通过这些日志来快速定位问题。在mysql中,日志分为以下几类:

  • 慢查询日志,当sql的执行时间超过设定值时,便会记录

  • 错误日志,mysql启动、停止或运行时发生错误时,会记录到错误日志里

  • 二进制日志,该日志记录那些改变数据库数据时的sql语句,通过他,我们可以来恢复Mysql数据

  • 查询日志,当开启时,会记录查询SQL。

今天我们来讲讲慢查询、错误日志以及查询日志,二进制日志文件,将放以后用新的一篇文章来详细讲解。

错误日志

错误日志写记录Mysql启动、停止时出现的问题,另外也记录Mysql在运行中发生的重大问题。可以使用show variables like 'log_err%';查看错误日志文件的位置。

mysql> show variables like 'log_err%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| log_error           | ./iZbp171edtq2kx5iy0xufeZ.err |
| log_error_verbosity | 3                             |
+---------------------+-------------------------------+
2 rows in set (0.01 sec)

错误日志,默认使用主机名作为文件名,以err作为后缀名,存放在mysql目录下的/var目录中。如果我们想修改的话,可以修改配置文件log_error项。可以使用相对路径或绝对路径,使用相对路径的话只会修改错误日志文件名,而使用绝对路径则可以修改错误日志存放的位置。

错误日志的查看也非常简单,直接使用cat或vim来查看即可。

通用查询日志

通用查询日志会记录用户所有的操作,所以一般占用空间较大,日常运维中一般都不会开启,并且默认情况也是关闭该日志的。如想开启的话,则可以在配置文件中加入log选项。

慢查询日志

慢查询是一个非常好的排查SQL问题工具,很多情况下,都是我们的sql导致系统运行不畅。笔者以前犯过这个错误,使用的一条非常复杂的查询语句,系统刚上不旧就502了。前段时间,发现公司的老项目也是出现了相应的问题,该项目使用的dedecms,当数据量达到一定程度,就会出现大量的慢查询,然后整个系统的cpu就跑满了。所以,我们要经常查看慢查询日志,找过sql的问题所在。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载

慢查询配置项

  • slow-query-log={0|off|1|on}  是否开启慢查询日志功能

  • slow-query-time=10 设定的阀值,单位为秒,支持浮点数。当sql的执行时间超过该值,就会记录在慢查询日志中。如果设置为0,则会记录所有查询

  • slow_query_log_file=/mydata/data/hostname-slow.log 慢查询日志存放的位置及文件名

  • log_queries_not_using_indexes=OFF 该项表示没有使用索引的查询也会记录到慢查询日志中去。

案例

现在,我将自己的mysql的慢查询日志打开,并且将时间设置为0,记录所有的SQL。然后来带大伙看看慢查询日志是怎样的。

Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2020-05-31T12:00:01.895700Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.000170  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
use blog;
SET timestamp=1590926401;
SET NAMES utf8mb4;
# Time: 2020-05-31T12:00:01.902684Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.006914  Lock_time: 0.006529 Rows_sent: 0  Rows_examined: 120
SET timestamp=1590926401;
SELECT * FROM knowledge 
            WHERE is_delete=0 AND star <p>我们主要看Query_time行</p>
  • Query_time:查询时间

  • Lock_time:锁表时间

  • Rows_sent:获取的数据行

  • Rows_examined:扫描的数据行

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

140

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

60

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

40

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

340

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

120

22

GDB C++程序怎么调试
GDB C++程序怎么调试

本专题围绕GDB调试C++程序的实际过程,详细说明程序编译、调试器启动、命令行参数传入、断点命中和程序继续运行等步骤,并介绍条件断点、临时断点和观察点的设置方法,方便开发者跟踪复杂代码的执行状态。

2026.09.11

120

20

Iris框架MVC架构与依赖注入合集
Iris框架MVC架构与依赖注入合集

本专题讲解Iris框架MVC开发模式,包含控制器注册、方法命名与路径映射、By参数绑定、BeforeActivation自定义路由,以及依赖注入容器注册、数据库依赖注入、返回值序列化及MVC下WebSocket与gRPC整合实践。

2026.09.11

80

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 166人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 262人学习