1

MySQL 版本:5.58 MySQL 社区服务器

我正在尝试为每个开发版本组织我们拥有的脚本,以便我们的生产 dba 在发布期间更容易执行脚本。我有一些具有更新、插入、删除语句的脚本,然后是一个调用这些脚本的主脚本,因此 dba 只需在发布期间调用主脚本。

master.sql 包含: 源文件1.sql 源文件2.sql 源文件2.sql

在调试这些脚本的过程中,我使用“tee”记录到一个文件中,对于在每个单独的 sql 文件中运行的每个查询,我都会得到类似的结果:

查询正常,1 行受影响(0.01 秒)匹配行:0 更改:0 警告:0

在上面的示例中,它无法更新行,因为它在 where 子句中找不到匹配项,因此我需要查看该查询以了解原因。但是我看不到查询,因为它没有与结果一起显示,所以我必须尝试计算结果,然后查看原始文件以确定哪个查询有问题。这对每个文件中的少数查询没什么大不了的,但是如果我在一个文件中有数百个查询,那就很痛苦了。

我的问题是:有没有办法让 mysql 显示实际查询及其产生的结果,而不必在文件中的每个查询之后都有某种打印语句(即选择“我的查询”)?

谢谢

4

3 回答 3

0

如果您正在使用tee,听起来您有一个 bash 脚本。在执行每个查询之前尝试回显查询(或查询的名称)。

于 2012-10-05T16:38:21.123 回答
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;
于 2012-10-05T16:41:15.477 回答
0

您可以使用 mysql 客户端的详细选项。例如:

mysql -u xxxx -pxxxx -h xxxxx -P XXXX -vvv --show-warnings --line-numbers < x.sql

将生成包含查询文本的详细日志。

于 2012-10-05T16:41:54.337 回答