是否可以記錄所有執行的查詢?我正在查看由許多不同的應用程序訪問的數據庫。其中之一是以不應該的方式修改表格的值。我試圖找出哪個應用程序是罪魁禍首。如果我可以捕獲在該表上以及在什麼時間執行的所有查詢,它將會幫助我很多。如何記錄MySQL查詢?
非常感謝您的幫助。
是否可以記錄所有執行的查詢?我正在查看由許多不同的應用程序訪問的數據庫。其中之一是以不應該的方式修改表格的值。我試圖找出哪個應用程序是罪魁禍首。如果我可以捕獲在該表上以及在什麼時間執行的所有查詢,它將會幫助我很多。如何記錄MySQL查詢?
非常感謝您的幫助。
據我所知,目前沒有內置MySQL的審計功能。從生成它們的應用程序中記錄查詢,或者嗅探到服務器的連接。
請用你的downvote發表評論。我的回答有什麼問題?謝謝。 – 2011-01-13 01:49:18
@Sarmen:請將我們引導至此功能的文檔。如果它存在,那麼我會高興地刪除/編輯我的答案。否則,請刪除您的downvote。無論如何,downvotes最好伴有_explanations_。謝謝。 – 2011-08-02 23:35:03
加入這一行
log=allqueries.log
,你將需要重新啓動mysql的
一個可能的解決問題的方法是利用對有問題的表的更新觸發器。該觸發器將觸發該表的任何更新,並且可以編寫觸發器,以便在滿足特定條件(所涉及的值發生更改)時執行操作(可能寫入臨時表,即SQL語句這使得改變)。欲瞭解更多信息,我建議看看Trigger Syntax。
You can use the general log in MySQL to achieve this。我只建議你在沒有許多併發用戶的測試/開發數據庫上這樣做,因爲產生的輸出量是巨大的。但我不確定是否記錄時間戳。
如果不是這樣,在一個unix/linux的設置中,我會說寫一個簡單的腳本,讀取stdin中的行,並在讀取時用當前時間戳打印行,然後pipe tail -f on日誌文件,所以你可以添加你自己的時間戳。
是什麼把my.cnf中最好的地方,我怎麼告訴甲基苯丙胺,其中該文件?所以它會工作。因爲不管我什麼都不做就會被記錄下來。我正在使用MAMP的MAMP,就像窗戶上的wamp一樣。 – 2011-08-02 22:57:38