我想知道是否有可能從外部程序聽取寫入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. 有什麼辦法可以禁用UITextField的聽寫支持嗎?
- 2. 有沒有什麼辦法可以編寫簡潔的代碼?
- 3. 有沒有什麼辦法可以從MySQL執行PHP腳本?
- 4. 有沒有什麼辦法可以讓我的C#XMLManager工作?
- 5. 有沒有什麼辦法可以將ROLLUP(mysql)數字作爲php中的值?
- 6. 有沒有什麼辦法可以用離子聆聽鍵盤後退按鈕?
- 7. 有沒有什麼辦法可以將數據保存爲儘可能小mysql
- 8. 有沒有什麼辦法可以在Android上的SD卡上隨意寫字?
- 9. 有沒有什麼辦法可以用php的
- 10. 有沒有什麼辦法可以放大c#中的按鈕?
- 11. 有沒有什麼辦法可以「預編譯」Rails中的Markdown?
- 12. 有沒有什麼辦法可以管理mysql的等待時間
- 13. 有沒有什麼辦法可以改變mysql中所有表的列名大小寫的情況下
- 14. 有沒有什麼辦法可以用大寫字母來創建JSON對象?
- 15. 有沒有什麼辦法,而使用redis,我們可以寫入hbase
- 16. 有沒有什麼辦法可以將Redis配置爲不區分大小寫?
- 17. 有沒有什麼辦法可以使用WebBrowser Class(Band Objects)來編寫DOM?
- 18. 有沒有什麼辦法可以在eclipse中編譯GnuTLS?
- 19. 有沒有什麼辦法,輸入/ LeaveCriticalSection可以留下
- 20. 有沒有什麼辦法可以在windows phone中創建pdf
- 21. 有沒有什麼辦法可以查看應用程序
- 22. 有沒有什麼辦法,HTML音頻標籤可以在Firefox
- 23. 有沒有什麼辦法可以在DataGrid中顯示CheckBox
- 24. 有沒有什麼辦法可以在php
- 25. 有沒有什麼辦法可以從RAP
- 26. Scala Netty有沒有什麼辦法可以共享一個ReplayingDecoder
- 27. 有沒有什麼辦法可以防止url注入?
- 28. 有沒有什麼辦法可以延遲執行onServiceConnected()?
- 29. 有沒有什麼辦法可以通過cs文件搜索
- 30. Android:有沒有什麼辦法可以將ImageView投射到RelativeLayout
怎麼樣或爲什麼不復制? –