mysql - 如何从二进制日志文件中获取数据并插入到我们想要的 MySQL 表中?

标签 mysql binary

如何从二进制日志文件中获取数据并插入到我们所需的 MySQL 表中?

我正在为 Audit Trail 编写 PHP 代码脚本,在这种情况下,如果创建新表,那么我将无法使用该新表的触发器,因此无法进行跟踪为此,如果我编写代码为这个新表创建三个新触发器,那么如何完成该表中的最后更改?因此,我发现二进制日志文件在这种情况下对我很有帮助,可以获取此新表的最后更改并将其插入跟踪表中......但是如何????

最佳答案

如果您谈论的是 MySQL 二进制日志文件 (mysql-bin),那么它不是为 MySQL 以外的任何东西读取而设计的 - 它是一个事务日志文件。日志文件中的数据大部分时间在您阅读时已经在您的数据库中。

也许如果您编辑您的答案以提供有关您要实现的目标的更多信息,您可能会得到更好的答案和解决方案。

编辑:

解析二进制日志文件会让您更加头疼 - 它是 MySQL 的内部文件,并且众所周知会在不同版本之间发生变化。它还会根据服务器的配置方式更改格式(基于行/基于语句/混合格式)。服务器管理员还可以完全禁用二进制日志记录。

如果您可以承受性能损失,您最好记录所有查询 - 您可以将这些写入文件,甚至写入数据库表(尽管在 MySQL 5.1 的早期版本中,这会导致严重的性能损失; 它可能仍然是这种情况。)这会记录从客户端收到的所有 SQL 查询,因此您可以检查 CREATE TABLE 查询和修改此表中数据的所有语句。

http://dev.mysql.com/doc/refman/5.1/en/query-log.html

关于mysql - 如何从二进制日志文件中获取数据并插入到我们想要的 MySQL 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522053/

相关文章:

mysql - 从库存中获取可用设备的 SQL 语句

php - 如何使用 MySQL 查询更新产品重量和制造国家?

java - 如何将字符串转换为7位二进制

c++ - 在 C++ 中将位序列转换为 uint32_t

javascript - 从二进制 "01000111"中获取所有索引值为 1

php - mysql新手问题php

c# - 如何在数据表上进行此查询?

移动应用中的 C++。它是如何运作的

c++ - 类型位长度和特定于体系结构的实现

mysql : get count and percent for all entries of a table with given conditions