这是一个关于记录失败的MySQL尝试的纯粹的SQL调整问题。我需要一个解决方案来将失败的SQL记录到MySQL数据库中。
MySQL 在这里不起作用,因为它只记录成功的查询。我需要在不同的日志文件中知道失败的日志。
我的场景是:我需要清理一大堆乱七八糟的SQL和PHP脚本(从字面上看,每页大约执行7,000个SQL)。由于错误在服务器上被抑制,即使SQL失败的查询也会继续,并在网站上显示良好的内容。但我可以肯定的是,有很多SQL错误。我找到2个链接,但无法重试。MySQL中的和插件。
以的身份使用作为答案。
问题细节。假设我们有一些InnoDB表,这个表包含一些记录。我的问题是:考虑到某种形式的操作日志,您将如何实现“删除”操作?我引用“删除”是因为它有一些味道:
删除操作应该使用DELETE FROM table_x WHERE...。这对外键约束非常有用。但如何才能追踪这次行动呢?(我指的是某种形式的数据库日志操作)。如果将已删除的记录插入到辅助数据库或同一数据库上的不同表中是个好主意?另一个想法是有一个列,假设valid的值为1(用于活动/有效)和0(用于删除的记录)。"delete“操作只需将该列上的值设置为0,业务逻辑就不再考虑它了。通过保存所有记录,将在同一个数据库上进行日志记
这涉及到运行在Windows 2016上的MySQL 5.7。
我正在使用MySql中的TRUNCATE语句来缩小大型日志文件(名为"mySite.log")的大小,该文件位于:
ProgramData/MySQL/MySQL Server 5.7/Data/
我研究和实施了以下几点:
mysql> SET GLOBAL general_log=OFF;
这是成功的。
但是,我试图确定我在上面所述目录中看到的大型日志文件实际上是通用查询日志文件。它将数据库的名称作为文件名("MySite.log")的前缀,就像同一目录中的其他文件(..bin‘s和.err