如何以即時來源格式查看 MySQL 中上次執行的查詢?
我想讓我的終端機視窗保持開啟狀態,只要執行某些東西,螢幕上就會彈出 MySQL 查詢。我知道我可以使用 tail 命令來完成此操作,但我不確定 MySQL 日誌儲存在哪裡。我也可以執行 mysqladmin proc,但這並不能為我提供連續的即時回饋。
答案1
您在這裡有幾個選擇。您可以透過新增以下內容來啟用 MySQL 的常規查詢日誌記錄:
log = /path/to/your/log.log
到您的 my.cnf (通常是 /etc/my.cnf)並重新啟動。然後您可以根據需要尾隨它。我不一定會建議這樣做,因為隨著時間的推移,該日誌可能會變得相當大。
正如您所提到的,您的第二個選擇是將 watch 與 mysqladmin proc 結合使用。例如,您可以使用:
watch -n.5 'mysqladmin proc stat'
每半秒向您顯示進程清單和狀態。您可以更改 -n.5 以滿足您的特定需求(我更喜歡在該行中添加 stat 以提供額外的信息,這有時會很有幫助)。
答案2
所有查詢都寫入系統上名為「.mysqlhistory」的檔案中。您可以執行以下命令來主動查看資料庫上執行的查詢。
尋找/-名稱“.mysqlhistory”-exec 'tail -f'