我购买了一个可以在我的 CentOS 机器上运行的程序。它是用 PHP 编写的。它使用 MYSQL 数据库。
该程序的功能之一是注册新用户。它使用 SQL 查询来添加用户。我想编写一个 Python 程序,也可以将用户添加到此数据库,但我不知道它会添加哪些属性和表(这是一个相当大的数据库)。
是否有可能以某种方式监视该程序向 MYSQL 发送的 SQL 查询?
答案1
有两种方法可以做到这一点,一种是更简单的方法(可能不够好),另一种是更复杂的方法,后者将 100% 满足您的要求。
更简单的方法是,在使用命令执行查询时立即查找查询
SHOW FULL PROCESSLIST
。这样可以显示查询,但如果很少执行操作(您正在寻找的 SQL 查询),您将不得不等待很长时间并经常发出上述命令才能获得所需的结果。还有更好的方法。启动 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;
如需进一步了解文档,请参阅显示进程列表。