![管道 MySQL 日志](https://linux22.com/image/542003/%E7%AE%A1%E9%81%93%20MySQL%20%E6%97%A5%E5%BF%97.png)
我正在尝试让 mysql 事务日志转到一个脚本,然后从该脚本中将文件写入两个位置(一个映射远程)以实现基本冗余,并可能用于以后的扩展/专门解析。
对于某些应用程序,我可以使用管道连接到脚本,即——log="|/usr/local/bin/processScript"
然而 MySQL 抱怨说,即使脚本的权限为 755,它也无法找到该文件。
我也查看过 FIFO 文件,但不确定它们是否能完成我想要的功能。我真的不想使用任何形式的轮询系统。
对于可能发生的事情或如何实现这一目标,您有什么想法吗?
答案1
使用|/path/to/some/script
取决于具体应用程序。部分应用程序可能支持该语法。MySQL 手册没有提及支持这种语法,所以可能不支持它。
为了实现冗余,您应该使用 MySQL 内置复制。此外,您可以启用log-slave-updates
选项并使用 mysqlbinlog 从从属上的 binlog 中提取已执行的查询。
另一种可能性是设置DRBD 复制在存储 mysql 常规日志的卷上。
答案2
我认为这是不可能的。为了冗余 - 你为什么不使用常规的 mysql 复制到其他位于本地和异地的 mysql 服务器[在它们上启用 binlog 到文件...这样即使有人执行可怕的 drop table 命令你也能获得数据]?
答案3
之前从未见过将日志文件定义为管道。你确定可以这样做吗?
您是否还考虑过使用二进制日志?快多了!但这意味着您必须处理二进制日志而不是纯文本 - 不过 mysqlbinlog 命令将完成大部分工作。