如何从二进制日志文件中获取数据并插入到我们所需的 MySQL 表中?
我正在为 Audit Trail 编写 PHP 代码脚本,在这种情况下,如果创建新表,那么我将无法使用该新表的触发器,因此无法进行跟踪为此,如果我编写代码为这个新表创建三个新触发器,那么如何完成该表中的最后更改?因此,我发现二进制日志文件在这种情况下对我很有帮助,可以获取此新表的最后更改并将其插入跟踪表中......但是如何????
最佳答案
如果您谈论的是 MySQL 二进制日志文件 (mysql-bin),那么它不是为 MySQL 以外的任何东西读取而设计的 - 它是一个事务日志文件。日志文件中的数据大部分时间在您阅读时已经在您的数据库中。
也许如果您编辑您的答案以提供有关您要实现的目标的更多信息,您可能会得到更好的答案和解决方案。
编辑:
解析二进制日志文件会让您更加头疼 - 它是 MySQL 的内部文件,并且众所周知会在不同版本之间发生变化。它还会根据服务器的配置方式更改格式(基于行/基于语句/混合格式)。服务器管理员还可以完全禁用二进制日志记录。
如果您可以承受性能损失,您最好记录所有查询 - 您可以将这些写入文件,甚至写入数据库表(尽管在 MySQL 5.1 的早期版本中,这会导致严重的性能损失; 它可能仍然是这种情况。)这会记录从客户端收到的所有 SQL 查询,因此您可以检查 CREATE TABLE
查询和修改此表中数据的所有语句。
关于mysql - 如何从二进制日志文件中获取数据并插入到我们想要的 MySQL 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522053/