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

查看mysql执行日志

基础概念

MySQL执行日志(也称为查询日志)记录了MySQL服务器接收的所有SQL语句,包括客户端发送的语句和服务器执行的操作。这些日志对于调试、性能分析和审计非常有用。

优势

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

类型

  1. 通用查询日志:记录所有客户端连接和执行的SQL语句。
  2. 慢查询日志:记录执行时间超过设定阈值的SQL语句。
  3. 错误日志:记录MySQL服务器的启动、运行和关闭过程中的错误信息。

应用场景

  • 故障排查:当系统出现问题时,可以通过查询日志快速定位问题。
  • 性能优化:通过分析慢查询日志,找出执行缓慢的SQL语句,进行优化。
  • 安全审计:监控和记录所有SQL操作,确保数据安全。

如何查看MySQL执行日志

查看通用查询日志

  1. 打开MySQL配置文件(通常是my.cnf或my.ini),添加或修改以下配置:
  2. 打开MySQL配置文件(通常是my.cnf或my.ini),添加或修改以下配置:
  3. 重启MySQL服务器以应用配置更改。
  4. 查看日志文件:
  5. 查看日志文件:

查看慢查询日志

  1. 打开MySQL配置文件,添加或修改以下配置:
  2. 打开MySQL配置文件,添加或修改以下配置:
  3. 重启MySQL服务器以应用配置更改。
  4. 查看慢查询日志:
  5. 查看慢查询日志:

遇到的问题及解决方法

日志文件过大

原因:长时间运行的系统会产生大量的日志文件,导致磁盘空间不足。

解决方法:

  1. 定期清理日志文件:
  2. 定期清理日志文件:
  3. 配置日志轮转:
  4. 配置日志轮转:
  5. 使用logrotate工具进行日志轮转:
  6. 使用logrotate工具进行日志轮转:

日志文件权限问题

原因:MySQL服务器进程可能没有权限写入日志文件。

解决方法:

  1. 确保日志文件目录和文件的权限正确:
  2. 确保日志文件目录和文件的权限正确:
  3. 检查SELinux或AppArmor配置,确保允许MySQL写入日志文件。

参考链接

通过以上步骤和方法,你可以有效地查看和管理MySQL执行日志,从而更好地进行系统调试、性能优化和安全审计。

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

相关·内容

  • MySQL Explain查看执行计划

    我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。...(QEP:sql生成一个执行计划query Execution plan) mysql> explain select * from user; expain出来的信息有10列,分别是id、select_type...的序号会递增,id值越大优先级越高,越先被执行 id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行 二、select_type SIMPLE(简单SELECT,...如将主键置于where列表中,MySQL就能将该查询转换为一个常量,system是const类型的特例,当查询的表只有一行的情况下,使用system NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引...在执行查询时所作的优化工作 • 部分统计信息是估算的,并非精确值 • EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划。

    2.9K30

    开启查看Mysql数据库日志

    很多时候网站打开速度变慢,为了定位是否为数据库导致的,我们需要知道在访问网站的同时,站点执行了哪些SQL,每条SQL耗时多长。 为此,查看数据库日志是最直接的。...无需重启数据库,直接刷新站点,发现 VM_211_224_centos.log 日志有内容,VM_211_224_centos-slow.log日志无内容(当然这是针对我的情况而言,mysql/mariadb...虽然 VM_211_224_centos.log 日志有内容,但也仅仅是一股脑把所有SQL列印出来而已,并不能反映每条SQL的执行时长。...但是这里可以通过tail -f实时直播日志的打印,以判断执行哪些SQL时会有停顿: tail -10f /var/lib/mysql/VM_211_224_centos.log 刷新网站后,就能通过日志发现...哪个SQL在执行的时候出现卡顿。

    10.1K10

    mysql查看执行过的历史sql语句

    C端产品更新需同步到B端,2)B端订单需要同步到一套ERP系统;3)订单管理、财务结算、物流配置需要全部在erp中实现;为了提交开发效率,打算用最传统的方法:通过在被同步端按人工录入一次数据,记录一次执行...查看mysql日志状态,日志路径show variables like 'general_log%'开启日志记录:set GLOBAL general_log=on关闭日志记录set GLOBAL general_log...=off本人开发环境是5.7,其它版本暂未测试,是否有效请自行测试,详情可以参考mysql官网有关“通用查询日志”https://dev.mysql.com/doc/refman/8.0/en/query-log.html...英文不好的同事可以百度或者使用chrome自带翻译,查看更方便。...早年某培训机构推荐过一个php版本的日志查看工具,因换电脑忘记名称,有知道的欢迎推荐给我,谢谢!

    1.8K10

    Mysql中explain命令查看执行计划

    前言 使用explain命令可以查看一条查询语句的执行计划,这篇文章记录一下查询计划的各个属性的值极其含义. ? 那么我们按照图中的顺序逐个字段的看一下....本文采用官网的数据库样本,下载地址:[MySQL官方数据库](https://dev.mysql.com/doc/index-other.html) id 一组数据,表示任务被执行的顺序,序号越大的任务越先执行...5 UNION 出现在union后的查询语句中 6 UNION RESULT 从UNION中获取结果集,例如上文的第三个例子 table 查询的数据表,当从衍生表中查数据时会显示 x 表示对应的执行计划...常见于主键或唯一索引扫描 const,system 当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问 .NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引 possible_keys...将用where子句来过滤结果集 Using temporary 表示mysql在这个查询语句中使用了临时表.

    2.6K10

    查看Mysql正在执行的事务、锁、等待

    #当前拥有锁的事务ID  blocking_lock_id: 613962:460:3:4 1 row in set, 1 warning (0.00 sec) 二、查看锁的情况...EXPLAIN EXTENDED命令:显示SQL语句的详细的查询执行计划;之后可以通过"SHOW WARNINGS"命令查看详细信息。     ...SHOW WARNINGS命令:可以查看MySQL优化器优化后的SQL语句。     EXPLAIN PARTITIONS命令:显示SQL语句的带有分区表信息的查询执行计划。     ...MySQL会递归执行这些子查询, 把结果放在临时表里。 UNCACHEABLE SUBQUERY,结果集不能被缓存的子查询,必须重新为外层查询的每一行进行评估。...rows:显示MYSQL执行查询的行数,简单且重要,数值越大越不好,说明没有用好索引 Extra:该列包含MySQL解决查询的详细信息。

    19.2K22

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句 背景: 最近项目开发用到MySQL,想要查看后台执行的sql语句,立马google得知、可以使用 show processlist; 命令来解决...,通过里面输出结果的字段解释中可以分析执行了的sql语句类型,但发现不太适合一般的初级使用者,而通过日志文件查看sql语句是最直接的方法。...使用方法: 1:首先你需要创建一个日志文件log.txt ,例如如我直接保存在mysql目录下的data目录中间, 2:在 mysql的配置文件 my.ini 中最后添加 log=d:/mysql/data.../log.txt1    log=d:/mysql/data/log.txt 3:如此就可以记录所有的mysql执行的sql语句!  ...补充: 我们也可以使用命令 show processlist; 来查看; mysql,输入show processlist; 如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指

    12.4K20

    MySQL性能优化-查看执行慢的SQL语句

    MySQL性能优化-查看执行慢的SQL语句 查看执行慢的SQL语句,需要先开启慢查询日志 默认情况下,MySQL数据库没有开启慢查询日志 慢日志常用配置项 #是否启用慢查询日志 slow_query_log...= ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql/my-slow.log #慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s...查看是否开启慢查询日志 show variables like '%slow_query_log%'; 查看慢查询日志存放文件位置 show variables like '%slow_query_log...%'; 查看long_query_time阈值 show variables like '%long_query_time%'; 修改配置文件配置慢日志 #使用vi编辑器编辑mysql配置信息 vi /...etc/my.cnf #设置以下配置项: #是否启用慢查询日志 slow_query_log = ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql

    1.5K10
    领券