我想知道是否有可能从外部程序听取写入MySQL数据库的内容。我想要做的是在一台服务器上监听更改并通过HTTP将这些更改发送到另一台服务器。有没有什么办法可以听MySQL的写作?
1
A
回答
1
两种可能的解决方案:使用复制(如果可能的话)或database triggers。
1
如果可行,复制(如Kris所述)可能是您的最佳选择。但是,我会假设出于某种原因,复制在您的用例中不起作用。尤其是,你提到你需要通过HTTP发送它。我假设你需要沿着每次更新时通过HTTP调用运行在另一台服务器上的REST服务的方式来做一些事情。如果这是你的用例,复制可能不是一个可行的选择。
一个选项是触发器。我不知道MySQL中有一个可用的函数,它允许您直接从触发器中调用REST服务。另外,我不确定你会想要如何,因为每次数据库更新都会大大增加延迟。相反,我建议您添加一个触发器,每次在您关心的表上进行更新,删除或插入操作时,都会记录到本地表中。这将是一个“审计”表。然后,构建一个读取这些表的批处理进程/ cron作业,并同步调用另一台服务器上运行的外部REST服务。
另一个选择取决于用于访问数据库的语言。例如,如果您使用的是Java,则可以使用一些“代理”JDBC驱动程序,它们可以让您将代码注入到任何更新中。
另一种选择是配置MySQL注销二进制日志。然后,您可以解析该二进制日志,并使用上面建议的batch/cron过程,但不必读取更新的“audit”表,就可以读取二进制日志。再次注意,如果两个位置的数据库完全相同,则可以设置复制。如果没有其他的东西,你应该能够想出一个进程来获取二进制日志到远程服务器(取决于平台),在这里可以恢复二进制日志。请参阅http://dev.mysql.com/doc/refman/5.0/en/binary-log.html。
相关问题
- 1. 有没有什么办法可以编写简洁的代码?
- 2. 有没有什么办法可以将ROLLUP(mysql)数字作为php中的值?
- 3. 有没有什么办法可以用离子聆听键盘后退按钮?
- 4. 有没有什么办法可以将数据保存为尽可能小mysql
- 5. 有没有什么办法可以在Android上的SD卡上随意写字?
- 6. 有没有什么办法可以放大c#中的按钮?
- 7. 有没有什么办法可以用php的
- 8. 有没有什么办法可以管理mysql的等待时间
- 9. 有没有什么办法可以改变mysql中所有表的列名大小写的情况下
- 10. 有没有什么办法,而使用redis,我们可以写入hbase
- 11. 有没有什么办法可以将Redis配置为不区分大小写?
- 12. 有没有什么办法,输入/ LeaveCriticalSection可以留下
- 13. 有没有什么办法可以在eclipse中编译GnuTLS?
- 14. Scala Netty有没有什么办法可以共享一个ReplayingDecoder
- 15. 有没有什么办法可以用Sourcesafe创建配置项
- 16. 有没有什么办法可以优化这段代码?
- 17. 有没有什么办法可以在函数中使用get_sidebar?
- 18. 有没有什么办法可以用Tag Helper创建循环?
- 19. 有没有什么办法可以画出这个圆梯度
- 20. 有没有什么办法可以扩展ASP.NET Membership Provider?
- 21. 有没有什么办法可以将javascript值传递给php?
- 22. 有没有什么办法可以使用li:first-child和li:hover
- 23. 有没有什么办法可以在ScrollView之外使用SliverGrid?
- 24. 有没有什么办法可以自动生成har文件?
- 25. 有没有什么办法可以从RAP
- 26. 有没有什么办法可以在php
- 27. 有没有什么办法可以查看应用程序
- 28. 有没有什么办法可以在DataGrid中显示CheckBox
- 29. 有没有什么办法可以从八度使用.net .dlls?
- 30. 有没有什么办法,HTML音频标签可以在Firefox
怎么样或为什么不复制? –