首页
学习
活动
专区
圈层
工具
发布

mysql 执行日志

基础概念

MySQL执行日志(也称为查询日志)记录了MySQL服务器接收的所有SQL语句以及执行这些语句的时间。这些日志对于调试、性能分析和审计非常有用。

相关优势

  1. 调试:通过查看执行日志,可以追踪到具体的SQL语句,帮助定位问题。
  2. 性能分析:通过分析日志中的执行时间,可以找出慢查询,优化数据库性能。
  3. 审计:记录所有SQL操作,便于安全审计和合规性检查。

类型

  1. 查询日志(Query Log):记录所有执行的SQL语句。
  2. 慢查询日志(Slow Query Log):记录执行时间超过设定阈值的SQL语句。
  3. 错误日志(Error Log):记录MySQL服务器的错误信息。

应用场景

  • 数据库调试:在开发过程中,通过查看查询日志,可以追踪到具体的SQL语句,帮助定位问题。
  • 性能优化:通过分析慢查询日志,可以找出执行时间较长的SQL语句,进行优化。
  • 安全审计:在生产环境中,通过查询日志和错误日志,可以进行安全审计,确保数据库的安全性。

遇到的问题及解决方法

问题:为什么查询日志文件很大?

原因

  • 查询日志记录了所有执行的SQL语句,如果数据库操作频繁,日志文件会迅速增长。
  • 没有定期清理或归档日志文件。

解决方法

  1. 限制日志文件大小:设置日志文件的最大大小,超过后自动归档或覆盖。
  2. 限制日志文件大小:设置日志文件的最大大小,超过后自动归档或覆盖。
  3. 定期清理日志:使用脚本或工具定期清理或归档旧的日志文件。
  4. 定期清理日志:使用脚本或工具定期清理或归档旧的日志文件。
  5. 启用慢查询日志:只记录执行时间超过设定阈值的SQL语句,减少日志量。
  6. 启用慢查询日志:只记录执行时间超过设定阈值的SQL语句,减少日志量。

问题:为什么慢查询日志没有记录任何内容?

原因

  • 慢查询日志未启用。
  • 慢查询阈值设置过高,实际执行的SQL语句都未超过阈值。
  • 日志文件路径配置错误。

解决方法

  1. 启用慢查询日志
  2. 启用慢查询日志
  3. 检查慢查询阈值
  4. 检查慢查询阈值
  5. 根据实际情况调整阈值。
  6. 检查日志文件路径
  7. 检查日志文件路径
  8. 确保路径正确,并且MySQL服务器有权限写入该路径。

参考链接

通过以上信息,您可以更好地理解和配置MySQL执行日志,以满足调试、性能分析和审计的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【MySQL】Mysql 日志

日志分类  错误日志 二进制日志 查询日志 慢查询日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行 过程中发生任何严重错误时的相关信息...二进制日志,MySQl8.0默认已经开启,低版本的MySQL的需 要通过配置文件开启,并配置MySQL日志的格式。...主从复制的时候,从库(slave)会将日志解析为原文本,并在从库重新执行一次。 ROW 该日志格式在日志文件中记录的是每一行的数据变更,而不是记录SQL语句。...比如,执行SQL语句 : update tb_book set status='1' , 如果是STATEMENT 日志格式,在日志中会记录一行SQL文 件; 如果是ROW,由于是对全表进行更新,也就是每一行记录都会发生变更...慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于 min_examined_row_limit 的所有的SQL语句的日志。

4.8K20
  • MySQL 日志

    # MySQL 日志 错误日志 二进制日志 介绍 格式 查看 删除 查询日志 慢查询日志 # 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息...:ss" 之前产生的所有日志 也可以在mysql的配置文件中配置二进制日志的过期时间,设置了之后,二进制日志过期会自动删除。...# 慢查询日志 慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于 min_examined_row_limit 的所有的SQL语句的日志,默认未开启。...如果需要开启慢查询日志,需要在MySQL的配置文件 /etc/my.cnf 中配置如下参数: #慢查询日志 slow_query_log=1 #执行时间参数 long_query_time=2 默认情况下...#记录执行较慢的管理语句 log_slow_admin_statements =1 #记录执行较慢的未使用索引的语句 log_queries_not_using_indexes = 1 上述所有的参数配置完成之后

    2.3K20

    MYSQL日志-慢查询日志

    MySQL的慢查询日志,用于记录执行超过指定时长的SQL相关的信息,然而记录内容却不仅限于此。记录生成的log文件就是慢查询日志?是的,但也不仅限于此。...: 该参数定义了SQL执行时间被判定为慢查询的阈值,默认单位为秒,默认值为10;慢查询只会记录执行时间大于该阈值的SQL,恰好等于该阈值的SQL将不会被记录。...log_queries_not_using_index : 该参数描述了是否需要将未使用索引的SQL记录到慢查询日志中去,(即使它执行起来可能并不慢)ON:开启 OFF:关闭 log_throttle_queries_not_using_index...你是否有点小惊讶,说好的日志不就应该是一个log文件吗?然而并不是,MYSQL支持两种方式对慢查询信息记录,一种log文件的方式,另一种是表模式记录。...总结:mysql慢查询不是默认开启的,需要修改参数slow_query_log=ON开启;慢查询中记录的不一定都是执行时间超过阈值的SQL也有可能是未使用到索引的SQL;慢查询并不一定是日志log文件方式存储

    6K10

    ②⑩ 【MySQL Log】详解MySQL日志:错误日志、二进制日志、查询日志、慢查询日志

    MySQL日志:错误日志、二进制日志、查询日志、慢查询日志 1....错误日志 2. 二进制日志 3. 查询日志 4. 慢查询日志 ②⑩ MySQL日志:错误日志、二进制日志、查询日志、慢查询日志 1....在MySQL8版本中,默认二进制日志是开启着的; 查看二进制日志位置、参数: SHOW VARIABLES LIKE '%log_bin%'; 二进制日志 - 格式: MySQL服务器提供了多种格式来记录二进制日志...慢查询日志 慢查询日志: 慢查询日志记录了所有执行时间超过参数long_query_time 设置值并且扫描记录数不小于min_examined_row_limit 的所有的SQL语句的日志,默认未开启...#设置执行时间参数,默认为10秒,最小为0 long_query_time=2 #记录执行较慢的管理语句 log_slow_admin_statements=1 #记录执行较慢的未使用索引的语句 log_queries_not_using_indexes

    2.9K10

    mysql存储过程执行_mysql存储过程不执行

    实战mysql存储程序与定时器 存储过程定时器eventprocedure实战 需求:一个庞大的日志表,现每天做定时统计一天的总数,放另一个表中,方便查看,运营。...旧方案:用脚本写好程序,用linux的crontab定时执行。 本文重点,用mysql定时器定时执行存储程序。...执行这个语句之前要先 Sql代码 delimiter $$ 执行完成后再 Sql代码 delimiter ; 用show查看是否已经成功 Sql代码 show procedure status like...‘%%’; 第二步:开启mysql定时器 如果不是on,就执行 Sql代码 set global event_scheduler=1; 不需要重启mysql 会发现mysql多起了一个daemon进程...Enable表示系统将执行这个事件。Disable表示系统不执行该事件。

    21.9K20

    mysql 日志文件_mysql日志文件在哪「建议收藏」

    本篇文章将介绍mysql中的几种日志文件位置,如何能够找到。...mysql日志文件的查询方法: 查找错误日志文件路径show variables like ‘log_error’; 在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。...日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。...慢查询日志文件路径show variables like ‘slow_query_log_file’; 慢查询日志是用来记录执行时间超过指定时间的查询语句。...通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句。可以帮助我们定位性能问题的。

    6.1K20

    MySQL日志 - Redo Log重做日志

    MySQL日志历史文章, 《MySQL日志 - Error Log错误日志》 《MySQL日志 - General Query Log》 Redo日志可以说是关系型数据库的精髓之一,GreatSQL技术社群的这篇文章...特点 Redo日志是顺序写入磁盘的 在执行事务的过程中,每执行一条语句,就可能产生若干条Redo日志,这些日志是按照产生的顺序写入磁盘的,也就是使用顺序IO,效率比随机IO快。...每个 mtr 都会产生一组Redo日志,用示意图来描述一下这些 mtr 产生的日志情况: 不同的事务可能是 并发 执行的,所以 T1 、 T2 之间的 mtr 可能是 交替执行 的。...但也不推荐 Redo Log 设置过大,在MySQL崩溃恢复时会重新执行REDO日志中的记录。...《图表数字化的制作神器》 《寻找SQL执行线索的武器库》 《MySQL唯一索引有重复值且不是bug的场景》 《《数字中国建设整体布局规划》》 《MySQL日志 - Error Log错误日志》

    3.1K30

    MySQL 之日志

    MySQL的日志分为以下四大类: 错误日志:记录mysql服务的启动,运行或停止mysql服务时出现的问题; 查询日志:记录建立的客户端的连接和执行的语句; 二进制日志:记录所有更改数据的语句,可以用于数据的复制...; 慢查询日志:记录所有执行的时间超过long_query_time的所有查询或不使用索引的查询; 默认情况下,所有日志创建于MySQL数据目录中,通过刷新日志,可以强制MySQL关闭和重新打开日志文件...,Flush logs刷新日志或者执行mysqladmin flush-logs 如果正使用MySQL复制功能,在复制服务器上可以维护更多日志文件,这种日志我们称为接替日志。...慢查询日志采用的是简单的文本格式,可以通过各种文本编辑器查看其中的内容。其中 记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息。...慢查询日志的作用: 慢查询日志是用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。

    1.7K30

    MySQL日志介绍

    MySQL日志简介 MySQL的日志主要分为六类: (1) 错误日志log_error:记录MySQL服务的启动、运行或停止MySQL服务时出现的问题 (2) 查询日志general_log:记录简历的客户端连接和执行的语句...binlog-do-db=db_name 显示指定,mysql会忽略正对其他书库执行query,而仅仅记录只对指定数据库执行的query binlog-ignore-db=db_name: 显示的指定忽略某个数据库的...如果执行FLUSH LOGS,log-bin 会使用新的二进制日志编号 2.通用查询日志general_log 通用查询日志记录在MySQL上执行过的SQL语句,包含查询语句与启动时间。...通用日志的开启方法: (1)执行命令开启: set global general_log=1;//=0就是关闭通用查询日志 此时在默认在mysql的data目录中生成了localhost.log文件,该文件就是通用查询日志文件...,需要在服务端执行以下命令: mysqladmin -uroot -p flush-logs 4.慢查询日志log-slow-queries 慢查询日志是记录查询时长超过指定时间的日志,慢查询日志主要用来记录执行时间较长的查询语句

    1.7K20

    mysql日志记录

    一.mysql二进制日志 配置如下: log-bin = /path/mysql-bin #其记录日志文件名为mysql-bin.index,mysql-bin.000001(注:重启或者单个文件超出限制会...like 'log_%'; #查看日志设置 查看二进制日志 show binary logs; #查看日志文件个数与文件名 mysqlbinlog filename #查看二进制文件内容 删除二进制日志...reset master; #删除全部二进制日志 二进制日志恢复文件 mysqlbinlog [--start-date="Y-m-d" --stop-date="Y-m-d"] filename |...mysql -uroot -ppass 二、错误日志 配置如下: log-error = /path/error.log 查看状态 show variables like 'log_error'; 删除错误日志...= /path/general_query.log 删除错误日志 flush logs 或 mysqladmin -uroot -ppass flush-logs 删除文件后重新创建 四、慢查询日志

    6.3K20

    Mysql日志解析

    日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。...慢查询日志是用来记录执行时间超过指定时间的查询语句。...通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句。可以帮助我们定位性能问题的。...二进制日志也叫作变更日志,主要用于记录修改数据或有可能引起数据改变的mysql语句,并且记录了语句发生时间、执行时长、操作的数据等等。...但是当正在执行mysql读写操作时建议不要使用此打开正在使用的二进制日志文件;若非要打开可flush logs。

    5.7K80

    【MySQL高级】MySQL的日志

    MySQL 也不例外。...二进制日志,MySQl8.0默认已经开启,低版本的MySQL的需 要通过配置文件开启,并配置MySQL日志的格式。...主从 复制的时候,从库(slave)会将日志解析为原文本,并在从库重新执行一次。 ROW 该日志格式在日志文件中记录的是每一行的数据变更,而不是记录SQL语句。...比如,执行SQL语句 : update tb_book set status='1' , 如果是STATEMENT 日志格式,在日志中会记录一行SQL文 件; 如果是ROW,由于是对全表进行更新,也就是每一行记录都会发生变更...慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于 min_examined_row_limit 的所有的SQL语句的日志。

    1.2K22

    MySQL日志管理

    MySQL日志管理 错误日志 配置方法: vim /etc/my.cnf [mysqld] log-error=/tmp/mysql.log 查看配置方式: show variables like '%...log%error%'; 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志。...show variables like '%gen%'; 作用: 记录mysql所有执行成功的SQL语句信息,可以做审计用,但是我们很少开启; 可以作为审计功能,一般情况下这个日志不会开,除非有特殊要求...例如:ELK 二进制日志 建议刚部署mysql数据库的时候就开启二进制日志 二进制日志不依赖于存储引擎的,依赖于sql层,记录和sql语句有关的信息 在sql层已经执行完成的语句,如果是事务,应当是已经完成的事务...调优过程中的工具日志,统计收集执行慢的语句 慢日志设置 配置方法: vim /etc/my.cnf slow_query_log=NO slow_query_log_file=/tmp/slow.log

    1.9K120

    mysql日志管理

    binlog 是逻辑日志 会记录整个数据库运行期间变更性的,语句 1备份恢复必须依赖二进制日志 2复制环境必须依赖二进制日志 3分析大事务 配置 log_bin...文件,Position号是多少 整个日志里面的记录单元是evnet 每个evnet都有开始和结束位置点用,Position表示 show binlog events in 'mysql-bin.000004...=200000 --base64-output=decode-rows mysql-bin.000004 生产恢复痛点 1.跨度太大,起点难找 (一般备份加日志) 2....gtid是具备幂等性的,我们截取出来的日志文件是带有已经执行过的gtid信息当我们把日志文件执行,发现数据并为恢复 mysqlbinlog --skip-gtids --include-gtids=...日志文件大小设置 max_binlog_size 默认是1g一般会设置小点 slowlog 主要记录执行较慢的sql语句 开关 slow slow_query_log=1 文件位置及名字 slow_query_log_file

    2.2K31

    MySQL 日志系统

    目录 日志系统 日志模块 redo log binlog 一条更新 SQL 语句执行过程 两阶段提交 日志系统 上一篇学习了 SQL 的执行过程,这一篇主要的学习内容就在其基础上新增了一个重要的知识点,...查询 SQL 语句执行回顾 mysql> select * from T where ID=10; 建立连接 查询缓存 语义语法分析 语句优化 执行执行,调用存储引擎接口查询数据 返回结果 日志模块 redo...这就是 MySQL 日志系统中的一个重要角色 redo log redo log 是一个可循环写的一个文件组。如一组 4 个文件 0 - 1 - 2 - 3 。...这两种日志有以下三点不同。 redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。...“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。 一条更新 SQL 语句执行过程 通过一条更新 SQL 来了解学习 MySQL 的日志系统。

    1.2K30
    领券