迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

在 MySQL 中获取命令历史记录

作者:迹忆客 最近更新:2023/05/07 浏览次数:

本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。


MySQL命令历史

我们将使用 Windows 和 Linux (Ubuntu 20.04) 操作系统来了解获取 MySQL 命令历史记录的不同方法。

对于 Windows 操作系统,我们将使用 MySQL Workbench 和 Windows 命令行(也称为 cmd 和命令提示符)以文件和表格的形式访问 MySQL 命令的历史记录。

对于 Linux 操作系统,我们将使用 Linux shell(终端)访问 MySQL 命令历史记录。


使用 Windows 命令行获取 MySQL 中的命令历史记录

在这里,我们将探讨三种在 MySQL 中获取命令历史记录的方法。

以表格形式获取所有 MySQL 命令的历史记录

  1. 打开 Windows 命令行并转到默认位于 C:\Program Files\MySQL\MySQL Server 8.0\bin 的 MySQL bin 文件夹。
  2. 使用您的登录凭据登录到 MySQL。
  3. 运行以下两个查询以打开 MySQL 查询日志并以表格形式准备 MySQL 命令的历史记录。
    SET GLOBAL log_output = 'table';
    SET GLOBAL general_log = 'on';
    
  4. 执行以下查询以获取已执行的 MySQL 命令的历史记录作为输出。
    SELECT a.*, CONVERT(a.argument USING utf8) FROM mysql.general_log a;
    
    在上面的查询中,我们使用 convert() 方法将参数字段的十六进制值转换为文本。 您还可以使用 MySQL 5.7 或更高版本获取十六进制值的参数属性值。

由于我们在命令行上的空间有限,我们选择特定的字段如下:

SELECT a.event_time,a.user_host, a.thread_id, a.server_id,
CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a LIMIT 10;

输出:

mysql command history cmd

获取文件中所有 MySQL 命令的历史记录

这种方法与前一种方法非常相似。 我们只需在登录 MySQL 后执行以下查询。

SET GLOBAL log_output = 'file';
SET GLOBAL general_log_file = "/yourPath/logfile.log";
SET GLOBAL general_log = 'on';

现在,在指定路径找到文件并打开它以查看所有详细信息。 通常,filename.log 文件如下所示。

输出:

mysql command history cmd in files

获取指定会话最后执行的 MySQL 命令的历史记录

我们还可以仅通过对特定会话使用以下查询来查找最后执行的 MySQL 命令。 我们在这里为 root 执行此操作,由于命令行空间有限,我们只选择了两个字段。

SELECT a.event_time,CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a WHERE user_host LIKE 'root%'
ORDER BY a.event_time DESC LIMIT 1;

输出:

mysql command history cmd for last query


在 Windows 上使用 MySQL Workbench 获取 MySQL 命令历史记录

我们在这里也有三种方法来检索 MySQL 命令的历史记录。 这些方法与我们使用 Windows 命令行讨论的方法相同。 但这一次,我们将在 MySQL Workbench 上执行。

以表格形式获取 MySQL 命令历史记录

我们执行以下查询以表格形式获取 MySQL 命令的历史记录。 此处,convert() 方法将参数字段的 blob 值转换为文本。

如果您使用的是 MySQL 5.7 或更高版本,您还可以在 Workbench 中将参数属性的值作为 blob 获取。

SET GLOBAL log_output = 'table';
SET GLOBAL general_log = 'on';
SELECT a.*, CONVERT(a.argument USING utf8) FROM mysql.general_log a;

输出:

mysql command history workbench in tables

我们可以使用 History Output 选项(在下面的屏幕截图中突出显示)来获取命令的历史记录,而不是编写查询。

mysql command history workbench history option

在一个文件或多个文件中获取 MySQL 命令历史记录

我们可以在指定路径的一个文件中获取所有历史记录。

SET GLOBAL log_output = 'file';
SET GLOBAL general_log_file = "/yourPath/logfile.log";
SET GLOBAL general_log = 'on';

我们还可以转到 C:\Users\DELL\AppData\Roaming\MySQL\Workbench\sql_history 位置,查看所有具有 MySQL 命令历史的单个文件。

获取上次执行的查询的 MySQL 命令历史记录

SELECT a.*,CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a WHERE user_host LIKE 'root%'
ORDER BY a.event_time DESC LIMIT 1;

输出:

mysql command history workbench for last query


使用 Ubuntu 终端获取 MySQL 命令的历史记录

以超级用户身份登录后运行以下命令。

cat ~/.mysql_history

输出:

mysql command history using ubuntu part one

您可以运行以下命令来消除空格并使其更具可读性。

sed "s/\\\040/ /g" < ~/.mysql_history

输出:

mysql command history using ubuntu part two

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

在 Linux 中安装 MySQL 客户端

发布时间:2023/05/09 浏览次数:72 分类:MySQL

在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。

在 MySQL 中转换为十进制

发布时间:2023/05/09 浏览次数:150 分类:MySQL

有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。

在 MySQL 中获取当前日期和时间

发布时间:2023/05/09 浏览次数:145 分类:MySQL

本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间

更改 MySQL 服务器中的 max_allowed_packet Size

发布时间:2023/05/09 浏览次数:142 分类:MySQL

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。

MySQL 货币数据类型

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章介绍最适合在 MySQL 中存储货币值的 DECIMAL(P,D) 数据类型。MySQL 货币数据类型 货币价值需要准确的表示。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便