如何跟踪mysql中source filename
命令的执行情况,以便我可以获得已运行的sql脚本的文件名和路径。谷歌没有帮助,或者我没有使用正确的关键字。
所以当我执行source ./test/file.sql
时(最好没有错误)
我想在" source_history"中输入一个条目。 table with current_time,filename(以及path),如果能算出如何跟踪,我可以做。
如果有人能帮助我跟踪命令source
,那将是非常有帮助的。(类似于在桌面上插入或更新的触发事件)
(可能是,在这个意义上跟踪所有命令,然后在退出mysql时,获取查询历史记录并检查source
)
希望这是有道理的。
提前致谢。
答案 0 :(得分:1)
问题是source
命令不是MySQL命令,它是command in MySQL's command line interface,也称为MySQL。
CLI仅将文件中的sql命令传递给MySQL服务器,因此服务器无法知道用于执行命令的确切文件。
MySQL自己的文档source
命令(参见上面的链接)提出了最明显的解决方案:
有时您可能希望脚本显示进度信息 用户。为此,您可以插入如下语句:
SELECT '<info_to_display>' AS ' ';
因此,简单的方法是创建一个包含路径,事件类型(开始/停止)和时间戳的字段的表,并将insert
语句添加到记录开始和每个sql文件的开头和结尾每个批处理的结尾,并提供插入语句中硬编码的文件的名称。您可能想要创建一个脚本,将这些命令添加到sql文件中。
替代方法是创建一个批处理文件,该文件在参数中接收.sql文件的路径,调用MySQL的CLI,在mysql中记录批处理的开始,启动.sql文件,然后记录日志在MySQL中完成批处理。