【问题标题】:Log all events on all tables with MySQL使用 MySQL 记录所有表上的所有事件
【发布时间】:2013-09-17 23:17:20
【问题描述】:

我需要记录表 database_log 中所有表的所有事件(id、用户、时间戳、表名、旧值、新值)。

我想我可以用一个小的 php 脚本在所有表(~25)上创建相同的触发器,动态替换名称的表。但在这种情况下,我可以检索旧值和新值,因为所有表都没有相同的列,所以我不能只连接所有字段以存储在“old_value”和“new_value”中(即使我检索架构中的字段因为我不能在它上面使用 concat() 来选择所有值并存储在变量中)。

例如:

 SELECT * into v_myvar FROM my_table where id=OLD.id;
 CALL addLog(v_myvar)

addLog 是采用我的旧值并添加一行其他信息的程序,可以挽救我的生命。

所以,我正在寻找一个带有一个触发器和/或一个过程(按表)或有用工具的性感解决方案。有人有解决方案吗?

谢谢

【问题讨论】:

    标签: mysql sql events logging triggers


    【解决方案1】:
    SET GLOBAL general_log_file = '/var/log/mysql/mysql.log'; 
    

    一般查询日志是mysqld正在做什么的一般记录。服务器在客户端连接或断开连接时将信息写入此日志,并记录从客户端接收到的每个 SQL 语句。

    查看MySqlDocumentation

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多