首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跟踪mysql中“源文件名”命令的执行情况

如何跟踪mysql中“源文件名”命令的执行情况
EN

Stack Overflow用户
提问于 2017-02-28 07:56:33
回答 1查看 339关注 0票数 1

如何在mysql中跟踪source filename命令的执行情况,以便有已运行的sql脚本的文件名和路径。谷歌没有帮助,也可能是我没有使用正确的关键字。

因此,当我执行source ./test/file.sql (最好没有错误)时,我希望在"source_history“表中有一个带有current_time的条目,即文件名(以及路径),如果我能够找到跟踪的方法,就可以这样做。

如果有人能帮助我跟踪命令source(类似于表上插入或更新的触发器事件),这将有很大帮助。

(可能是这样跟踪所有命令,然后退出mysql,获取查询历史记录并检查是否为source)

希望这是合理的。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-28 09:53:47

问题是,source命令不是MySQL命令,而是MySQL命令行接口中的命令,也称为MySQL。

CLI只将文件中的sql命令传递给MySQL服务器,因此服务器无法知道用于执行命令的确切文件。

MySQL自己的文档-- source命令(参见上面的链接)提出了最明显的解决方案:

有时,您可能希望脚本向用户显示进度信息。为此,可以插入如下语句: SELECT '<info_to_display>' AS ' ';

因此,简单的方法是创建一个表,其中包含用于路径、事件类型(start / stop)和时间戳的字段,并将insert语句添加到记录每个批的开始和结束的每个sql文件的开始和结束,并提供insert语句中硬编码的文件的名称。您可能希望创建一个脚本,将这些命令添加到sql文件中。

另一种方法是创建一个批处理文件,该文件接收参数中的.sql文件的路径,调用mysql的CLI,在MySQL中记录批处理过程的开始,启动.sql文件,然后在MySQL中记录批处理的完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42503122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档