SQL查询日志 查看数据库历史查询记录的方法

yizhihongxing

以下是关于“SQL查询日志 查看数据库历史查询记录的方法”的完整攻略。

1. 概述

在数据库中查看历史查询记录的方法很多,其中一种比较常见的方法是查看SQL查询日志。SQL查询日志记录了所有执行过的SQL语句,包括执行的时间,查询的结果,以及其他相关的属性。通过查看SQL查询日志,可以快速了解数据库的查询情况,及时发现问题并进行优化。

2. 打开SQL查询日志

在MySQL数据库中,打开SQL查询日志需要在配置文件中进行设置。配置文件一般是my.cnf或my.ini,位置在MySQL的安装目录下。修改配置后需要重启MySQL服务才能生效。

以下是在Windows系统中,打开SQL查询日志的配置方法示例:

  1. 打开MySQL安装目录下的my.ini文件,并在[mysqld]下添加以下内容:
log_output=FILE
general_log=1
general_log_file="C:/ProgramData/MySQL/MySQL Server 5.7/Data/general.log"

其中,log_output属性表示日志输出方式,可以设置为FILE(输出到文件)或TABLE(输出到表格),这里设置为FILE;general_log属性开启日志记录,这里设置为1表示开启;general_log_file属性表示日志输出文件的路径和名称。

  1. 重启MySQL服务。

3. 查看SQL查询日志

日志打开后,就可以开始查看SQL查询日志了。可以通过MySQL自带的命令行工具或者GUI工具进行查看。

3.1 通过命令行查看

在命令行中,可以使用以下命令查看SQL查询日志:

SHOW VARIABLES LIKE 'general_log%';

该命令会返回当前的general_log配置属性信息。确认general_log属性为ON后,再执行以下命令查看日志文件:

SELECT * FROM mysql.general_log;

该命令会返回所有记录的SQL查询日志,可以根据需要进行筛选和查看。

3.2 通过GUI工具查看

MySQL自带的GUI工具例如MySQL Workbench也可以查看SQL查询日志。在Workbench中,可以通过以下步骤查看SQL查询日志:

  1. 登录到目标数据库。
  2. 在菜单栏中依次选择:Server - Data Export - Advanced Options。
  3. 在Advanced Options对话框中,将General log选项打开,并选择输出到文件或输出到表格。
  4. 执行查询或操作,然后关闭对话框。
  5. 再次打开对话框,并选择Show logs,即可查看SQL查询日志。

4. 示例说明

以下是两个示例说明:

4.1 示例一:查询所有用户

SELECT * FROM users;

执行以上查询语句后,可以通过查看SQL查询日志快速了解查询时间、查询结果及相关属性,例如:

# Time: 2021-10-07T12:34:00.123456Z
# Thread_id: 123456
# Query_time: 0.001234
# Rows_sent: 10
# Rows_examined: 10
SET timestamp=1633584840;
SELECT * FROM users;

其中,Query_time属性表示查询时间,Rows_sent属性表示查询结果的行数,Rows_examined属性表示查询涉及的行数。

4.2 示例二:删除用户

DELETE FROM users WHERE id = 123;

执行以上删除操作后,可以通过查看SQL查询日志快速了解删除时间、删除行数及相关属性,例如:

# Time: 2021-10-07T12:34:00.123456Z
# Thread_id: 123456
# Query_time: 0.001234
# Rows_deleted: 1
SET timestamp=1633584840;
DELETE FROM users WHERE id = 123;

其中,Rows_deleted属性表示删除的行数。

5. 结论

通过查看SQL查询日志,可以快速了解数据库的查询情况和操作记录,及时发现问题并进行优化。但需要注意的是,开启SQL查询日志会对系统性能产生影响,如果不需要查看日志或日志文件过大,可以及时关闭日志。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL查询日志 查看数据库历史查询记录的方法 - Python技术站

(1)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决

    问题描述: 在MySQL 8.0.13及更高的版本中,当将表中的日期字段设置为’0000-00-00 00:00:00’时,将会出现以下错误信息: Error Code: 1292. Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘date_field’ at row 1 这很可能导致对…

    database 2023年5月22日
    00
  • MYSQL 的10大经典优化案例场景实战

    MYSQL的10大经典优化案例场景实战 MYSQL是当前最流行的关系型数据库之一,拥有良好的可扩展性和可靠性,但在使用过程中仍然会遇到一些性能瓶颈和问题。为了提高MYSQL的性能,以下是MYSQL的10大经典优化案例场景实战的完整攻略。 1.合理设计表结构和索引 在使用MYSQL前,要优先重视合理的表结构和索引设计。合理的表结构设计有利于减少冗余字段,避免频…

    database 2023年5月19日
    00
  • oracle丢失temp表空间的处理方法

    Oracle丢失TEMP表空间的处理方法 问题描述 在使用Oracle数据库时,如果由于某些原因导致TEMP表空间不可用,可能会导致一些SQL无法正常执行。例如,在执行某个需要使用TEMP表空间的大型查询时,会提示如下错误信息: ORA-01565: 妥善回滚数据文件‘/oracle/oradata/orcl/temp01.dbf’(0) ORA-01110…

    database 2023年5月18日
    00
  • MySQL如何指定字符集和排序规则?

    在MySQL中,可以使用以下两种方式指定字符集和排序规则: 创建数据库或表时指定字符集和排序规则 在创建数据库或表时,可以使用 CHARACTER SET 和 COLLATE 选项指定字符集和排序规则。例如,创建一个名为 mydatabase 的数据库,并将字符集设置为 utf8mb4,排序规则设置为 utf8mb4_general_ci,可以使用以下 SQ…

    MySQL 2023年4月11日
    00
  • Redis中对Hash类型的操作命令

      ——————————————————————– 1、对Hash类型的操作命令 1.1、hset:设置值。格式是:hset hash的key 项的key 项的值 操作如下: java示例代码: 1 import redis.clients.jedis.Jedis; 2…

    Redis 2023年4月12日
    00
  • MySql数据库基础知识点总结

    下面我来详细讲解“MySql数据库基础知识点总结”的完整攻略。 1. MySQL简介 MySQL是一种关系型数据库管理系统(RDBMS),它是一个开放源码的软件,使用广泛,是Web应用中最常用的数据库之一。 MySQL最初是由瑞典的MySQL AB公司开发,后来被Sun Microsystems收购,现在是Oracle公司的一部分。 MySQL数据库支持多种…

    database 2023年5月18日
    00
  • MySQL常见数值函数整理

    MySQL常见数值函数整理 MySQL提供了许多数值函数,用于处理数值类型的数据。本文将对常见的数值函数进行整理并详细介绍,包括函数的语法、功能、示例等。 1. ABS函数 语法 ABS(X) 其中X为任意数值类型的表达式。 功能 ABS函数返回一个数的绝对值。 示例 SELECT ABS(2); — 2 SELECT ABS(-2); — 2 SELE…

    database 2023年5月22日
    00
  • 利用ssh tunnel链接mysql服务器的方法

    利用SSH Tunnel链接MYSQL服务器的方法可以保证MYSQL数据库连接的安全性。以下是详细的攻略: 准备工作 在开始之前,需要准备以下工作: 1.远程MYSQL服务器的ip地址和端口号。2.有效的SSH连接信息,包括SSH服务器ip地址、SSH用户账号和密码。 连接MYSQL服务器 首先,我们需要通过ssh连接到远程服务器。在命令行中输入以下命令: …

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部