5

当我使用MySQLdbor之类的客户端库时oursql,我怎么知道它是否使用准备好的语句?

无论如何我可以分辨出服务器端的区别吗?也许通过查看某种日志?

编辑:我正在使用 MySQL5.1

4

2 回答 2

2

假设客户端有权使用存储过程,您必须使用某种形式的日志记录。

如果您可以控制客户端,则可以让客户端记录所有请求并检查该日志。

如果您无法控制客户端,则可以在数据库服务器上打开详细日志记录并检查 SQL 语句与客户端 ID。

如果您没有对数据库的这种控制,您可以通过修改存储过程中的“日志”来将它们也插入到日志表中,用户发出请求和时间戳等。

这些选项大致按优先顺序呈现。


阅读此链接以了解打开常规查询日志记录所涉及的内容。该链接的概要:

一般查询日志是mysqld在做什么的一般记录。当客户端连接或断开连接时,服务器将信息写入此日志,并记录从客户端接收到的每个 SQL 语句

从 MySQL5.1 开始,您可以general_log在运行时启用:SET GLOBAL general_log = 1

并用于SELECT @@general_log_file定位日志文件。

于 2013-06-25T01:53:32.803 回答
1

您需要启用 MySQL general_log 表/功能。您会在其中看到正在使用它的客户端的 PREPARE 语句。

于 2013-06-25T02:06:38.263 回答