MySQL版本:5.58 MySQL社区服务器
我正在尝试为每个开发版本组织我们的脚本,以便我们的生产dba在发布期间更容易执行脚本。我有一些脚本有更新,插入,删除语句,然后是一个调用这些脚本的主脚本,所以dba只需要在发布期间调用主脚本。
master.sql包含: 源文件1.sql 源文件2.sql source file2.sql
在调试这些脚本的过程中,我使用'tee'登录到一个文件,我为每个单独的sql文件中的每个查询运行得到类似的内容:
查询OK,1行受影响(0.01秒) 匹配的行数:0已更改:0警告:0
在上面的示例中,它无法更新行,因为它无法在where子句中找到匹配项,因此我需要查看该查询以查看原因。但是我看不到查询,因为它没有显示结果,所以我必须尝试计算结果,然后查看原始文件以确定哪个查询有问题。这对于每个文件中的少量查询来说没有什么大不了的,但如果我在文件中有数百个查询,则会很痛苦。
我的问题是:有没有办法让mysql显示实际查询及其生成的结果,而不必在文件中的每个查询后都有某种print语句(即选择'my query') ?
由于
答案 0 :(得分:0)
如果你正在使用tee
,听起来你有一个bash脚本。尝试在执行每个查询之前回显出查询(或查询的名称)。
答案 1 :(得分:0)
您可以使用0秒启用慢速查询日志记录,这样每条查询都会被记录,这样您就可以获得结果以及SQL语句本身。我不确定它是否能为您提供足够的信息。
# Time: 121005 11:39:51
# User@Host: user[user] @ localhost []
# Query_time: 0.003103 Lock_time: 0.000077 Rows_sent: 0 Rows_examined: 3
SET timestamp=1349455191;
update test set end = Null;
答案 2 :(得分:0)
您可以使用mysql客户端的详细选项。 例如:
mysql -u xxxx -pxxxx -h xxxxx -P XXXX -vvv --show-warnings --line-numbers < x.sql
将生成包含查询文本的详细日志。