2010-03-26 35 views
2

如何來從二進制日誌文件中的數據和我們所期望的表在MySQL中插入?如何從二進制日誌文件中獲取數據並將其插入MySQL中所需的表中?

我正在爲Audit Trail編寫一段PHP代碼的腳本,在這裏我遇到了一個情況,如果會有新的表創建,那麼我將無法使用該新表的觸發器,因此無法跟蹤爲此,如果我編寫代碼爲這個新表創建三個新的觸發器,那麼將如何在此表中完成最後的更改?因此,我發現二進制日誌文件在這種情況下對我來說可能是有用的,可以獲取這個新表的最後更改並將其插入到跟蹤表中......但是,

回答

2

如果你談論的是MySQL的二進制日誌文件(mysql的彬),它不是設計由MySQL之外的任何閱讀 - 這是一個事務日誌文件。日誌文件中的數據大部分時間在您讀取數據庫時已經存在於您的數據庫中。

或許,如果你編輯你的答案提供關於它是什麼你想實現的,你可能會得到更好的答案和解決方案的更多信息。

編輯:

解析二進制日誌文件會爲您提供更多的麻煩 - 這是一個MySQL的內部文件,被稱爲版本之間的更改。它也根據服務器配置方式(基於行/基於聲明/混合格式)更改格式。服務器管理員也可以完全禁用二進制日誌記錄。

如果你可以獲得性能提升,你最好記錄下所有的查詢 - 你可以把它們寫入一個文件,甚至寫入一個數據庫表(儘管在早期版本的MySQL 5.1中,這一點;它仍然可能是這種情況)這將記錄從客戶機接收的所有SQL查詢,這樣你就可以檢查CREATE TABLE查詢,此表中修改數據的所有語句。

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

+0

我對我的腳本的審計跟蹤一個PHP代碼的方式,在此我遇到一種情況,是否會有那麼創建新表,我將是不可用的觸發器的新表,因此沒有跟蹤可以做到這一點,所以如果我編寫它爲這個新表創建三個新的觸發器,那麼將如何在這個表中完成最後一次更改?因此,我發現二進制日誌文件在這種情況下對我來說可能是有用的,可以獲取這個新表的最後更改並將其插入到跟蹤表中......但是, – 2010-03-26 09:22:41

+1

我認爲,如果有人在你要審覈,在您不知情的數據庫中創建一個新的表,你的問題是差遠了... – 2010-03-26 09:29:06

+0

好友它必須是這樣的,我知道的問題更糟糕的是,如果什麼什麼未來的新模塊是否與新表集成在一起,即使是其他服務提供商也是如此?他不會知道這個情況,所以我必須有一個解決方案...請幫我.... – 2010-03-26 09:34:19

相關問題