mysql之general log 日志


開啟 general log 將所有到達MySQL Server的SQL語句記錄下來。

一般不會開啟開功能,因為log的量會非常龐大。但個別情況下可能會臨時的開一會兒general log以供排障使用。 
相關參數一共有3:general_log、log_output、general_log_file

show variables like 'general_log'; -- 查看日志是否開啟

set global general_log=on; -- 開啟日志功能

show variables like 'general_log_file'; -- 看看日志文件保存位置

set global general_log_file='tmp/general.lg'; -- 設置日志文件保存位置

show variables like 'log_output'; -- 看看日志輸出類型 table或file

set global log_output='table'; -- 設置輸出類型為 table

set global log_output='file'; -- 設置輸出類型為file

log_output=’FILE’ 表示將日志存入文件,默認值是FILE  
log_output=’TABLE’表示將日志存入數據庫,這樣日志信息就會被寫入到mysql.slow_log表中.

mysql數據庫支持同時兩種日志存儲方式,配置的時候以逗號隔開即可,如:log_output=‘FILE,TABLE‘.日志記錄到系統專用日志表中,要比記錄到文件耗費更多的系統資源,因此對於需要啟用慢查日志,又需要比夠獲得更高的系統性能,那么建議優先記錄到文件.

2.開啟數據庫general_log步驟

先執行sql指令:show variables like ‘%log%’;

可以看到默認general_log是OFF的,我們直接開啟:set global general_log = ON;(說明:此參考可以動態修改,但是重啟mysql失效,弱要永久生效,則需要修改需要在my.cnf的【mysqld】中添加:general_log = 1)
[mysqld]
general_log=on
general_log_file=/tmp/general.log修改完成重啟數據庫

general_Log文件處理:

當開啟general_Log后,mysql中的所有操作將會記錄下來,這樣general_Log文件就會產生很大的文件,此時需要清空此文件來釋放磁盤空間

1、錯誤操作:

網上有人建議直接刪除該文件,不重啟系統也會自動生成,但是通過測試,系統不會自動生產該文件

如果刪除掉,重啟mysql以后,general_log出現異常

2、正確的操作:

清空該表,具體操作如下:

SET GLOBAL general_log = 'OFF';

RENAME TABLE mysql.general_log TO mysql.general_log2;

DELETE FROM mysql.general_log2;

文章參考於https://blog.csdn.net/u010735147/article/details/81871560


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM