gpt4 book ai didi

MySQL 记录失败的查询尝试

转载 作者:可可西里 更新时间:2023-11-01 07:44:45 24 4
gpt4 key购买 nike

这是一个关于记录失败的 SQL 尝试的纯 MySQL 调整问题。我需要一个解决方案来在 MySQL 数据库上记录失败的 SQL。

MySQL general query log在这里不起作用,因为它只会记录成功的查询。我需要在不同的日志文件中知道失败的那些。

我的场景是:我需要清理大量困惑的 SQL 和 PHP 脚本(字面意思是,每页执行大约 7,000 个 SQL)。由于错误在服务器上被抑制,即使是 SQL 失败的查询也会继续并在网站上显示好的内容。但我敢肯定,有很多 SQL 错误。我找到了 2 个链接,但无法重试。 This onewriting server side audit MySQL 中的插件。

正在使用 Kontrolbase答案为 mentioned here .

最佳答案

Percona Server 5.5.37 和 5.6.17 包括免费和开源的审计插件的实现。在这里阅读:http://www.percona.com/doc/percona-server/5.6/management/audit_log_plugin.html

审计插件记录成功的查询和错误的查询。这是一个示例,其中我查询了我的表 foo,然后查询了一个不存在的表 foobar:

<AUDIT_RECORD
"NAME"="Query"
"RECORD"="489_2014-05-23T14:06:09"
"TIMESTAMP"="2014-05-23T14:08:13 UTC"
"COMMAND_CLASS"="select"
"CONNECTION_ID"="32709"
"STATUS"="0"
"SQLTEXT"="select * from foo"
"USER"="root[root] @ localhost []"
"HOST"="localhost"
"OS_USER"=""
"IP"=""
/>
<AUDIT_RECORD
"NAME"="Query"
"RECORD"="490_2014-05-23T14:06:09"
"TIMESTAMP"="2014-05-23T14:08:19 UTC"
"COMMAND_CLASS"="select"
"CONNECTION_ID"="32709"
"STATUS"="1146"
"SQLTEXT"="select * from foobar"
"USER"="root[root] @ localhost []"
"HOST"="localhost"
"OS_USER"=""
"IP"=""
/>

STATUS=1146 表示上面的错误查询。参见 http://dev.mysql.com/doc/refman/5.6/en/error-messages-server.html引用服务器错误。例如,1146 是 ER_NO_SUCH_TABLE。

如果您不能使用此解决方案,则必须更改 PHP 代码以移除错误抑制,并记录错误。

关于MySQL 记录失败的查询尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23858181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com