我能看见我的 CentOS 机器上正在运行哪些 sql 命令吗?

我能看见我的 CentOS 机器上正在运行哪些 sql 命令吗?

我购买了一个可以在我的 CentOS 机器上运行的程序。它是用 PHP 编写的。它使用 MYSQL 数据库。

该程序的功能之一是注册新用户。它使用 SQL 查询来添加用户。我想编写一个 Python 程序,也可以将用户添加到此数据库,但我不知道它会添加哪些属性和表(这是一个相当大的数据库)。

是否有可能以某种方式监视该程序向 MYSQL 发送的 SQL 查询?

答案1

有两种方法可以做到这一点,一种是更简单的方法(可能不够好),另一种是更复杂的方法,后者将 100% 满足您的要求。

  1. 更简单的方法是,在使用命令执行查询时立即查找查询SHOW FULL PROCESSLIST。这样可以显示查询,但如果很少执行操作(您正在寻找的 SQL 查询),您将不得不等待很长时间并经常发出上述命令才能获得所需的结果。还有更好的方法。

  2. 启动 MySQL 并启用日志记录,然后您将能够从 MySQL 服务器重新启动后看到所有 SQL 查询。这里的问题是日志文件可能非常大,对于没有经验的人来说,找到您要查找的内容可能很耗时,但这种方法通常更好。选项很简单:

mysqld --log=name_of_log_file.log

就这么简单。

只有一个警告:当您找到所需内容时,请重新启动 MySQL,但这次禁用日志记录,因为这将加快数据库速度并且不会占用服务器上的磁盘空间。

答案2

查看在具有 mysql 的任何平台上正在执行哪些 MySQL 查询。

MySQL 查询如下,

  • SHOW FULL PROCESSLIST了解详细信息。
  • SHOW PROCESSLIST用于当前正在处理的查询。

# mysql在终端中打开。

mysql> SHOW FULL PROCESSLIST;

mysql> SHOW PROCESSLIST;

如需进一步了解文档,请参阅显示进程列表。

相关内容