mysql如何查询用户操作日志

 更新时间:2026年01月06日 09:39:12   作者:最强菜鸟  
generallog是MySQL的全局日志,记录所有SQL语句,包括查询、DML、DDL和DCL语句,默认关闭以提高性能,但在需要审计时可开启,配置方法包括修改配置文件(my.ini或my.cnf)并重启数据库,开启后,可以通过查看general_log表或日志文件进行审计

一、概述

先简单介绍一下general log,这个日志主要的作用是记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在general log文件中,包括操作的用户ip都会记录在里面。

注意:

默认情况下这个是关闭的,因为会影响性能。

但是如果有遇到审计的话,需要审计数据的操作记录之类的需求的话,还是可以打开使用的,里面就会记录了哪些ip做了哪些语句。

二、配置

上面说了默认是关闭的,有需要可以开启,开启的方式很简单,需要修改一下mysql的配置文件,然后再重启数据库即可,如果是window系统的话,mysql的配置文件是my.ini,如果是linux的话,配置文件是my.cnf,注意区分。

先执行语句查看自己是否有开启

show variables like 'general_log'; -- 查看日志是否开启
# ON表示开启,OFF表示关闭

要开启的话可以配置文件在[mysqld]下面添加以下配置,然后重启数据库,这样就永久生效了

# 1:开启  0:关闭
general_log=1
# 日志的存放路径
general_log_file=/path/to/general.log

也可以直接在执行语句临时开启

set global general_log=on; -- 开启日志功能

查看日志路径

show variables like 'general_log_file'; -- 看看日志文件保存位置

也可以设置日志路径

set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置

查看日志类型

show variables like 'log_output'; -- 看看日志输出类型 table或file

关于日志类型有两种table或file,如果设置的file,那么只能在日志路径找对应的日志进行查看,内容如下:

不太好解读,可以设置为table类型

set global log_output='table'; -- 设置输出类型为 table

set global log_output='file'; -- 设置输出类型为file

设置完就可以查看mysql库里面的general_log表进行查看

就可以查看时间、用户ip、做了哪些操作等

注意:

如果是临时开启的配置的话,重启mysql服务后配置会失效

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL行列转化方式

    MySQL行列转化方式

    文章介绍了如何将行数据转化为列数据,并展示了如何使用UNION和UNION ALL的区别,作者分享了个人经验,希望能对大家有所帮助
    2026-01-01
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    连接MySql速度慢的解决方法(skip-name-resolve)

    这篇文章主要介绍了连接MySql速度慢的解决方法(skip-name-resolve),需要的朋友可以参考下
    2015-09-09
  • mysql和hive中几种关联(join/union)区别及说明

    mysql和hive中几种关联(join/union)区别及说明

    本文主要介绍了MySQL和Hive中各种连接和合并操作的用法,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、LEFT SEMI JOIN以及UNION和UNION ALL,同时,也提到了Hive在处理连接时的一些特殊规则和限制
    2025-11-11
  • MySQL高级篇之索引的数据结构详解

    MySQL高级篇之索引的数据结构详解

    在MySQL中索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,下面这篇文章主要给大家介绍了关于MySQL高级篇之索引数据结构的相关资料,需要的朋友可以参考下
    2022-05-05
  • 解决MySQL启动报错:Warning:mysqld.service changed on disk问题

    解决MySQL启动报错:Warning:mysqld.service changed on 

    文章提示MySQL启动时报错,因服务配置文件已更改,需运行`systemctl daemon-reload`重新加载配置,随后重启MySQL服务以解决此问题
    2025-09-09
  • MySQL Slave 触发 oom-killer解决方法

    MySQL Slave 触发 oom-killer解决方法

    这篇文章主要介绍了MySQL Slave 触发 oom-killer解决方法,需要的朋友可以参考下
    2016-07-07
  • MYSQL中有关SUM字段按条件统计使用IF函数(case)问题

    MYSQL中有关SUM字段按条件统计使用IF函数(case)问题

    MYSQL中SUM字段按条件统计使用IF函数,具体实现代码如下,感兴趣的朋友不要错过
    2014-01-01
  • 深入探究MySQL事务实现原理

    深入探究MySQL事务实现原理

    数据库事务是指一组数据库操作,这些操作必须被视为一个不可分割的单元,要么全部执行成功,要么全部失败回滚,本文详细的给大家介绍了MySQL事务的实现原理,对我们学习MySQL有一定的帮助,感兴趣的同学可以跟着小编一起来探究
    2023-06-06
  • MySQL中将一列以逗号分隔的值行转列的实现

    MySQL中将一列以逗号分隔的值行转列的实现

    这篇文章主要介绍了MySQL中将一列以逗号分隔的值行转列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Mysql在项目中相关使用方法指南(简单操作数据库)

    Mysql在项目中相关使用方法指南(简单操作数据库)

    作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的,下面这篇文章主要给大家介绍了关于Mysql在项目中相关使用方法的相关资料,主要是简单操作数据库,需要的朋友可以参考下
    2022-08-08

最新评论