mysql中的日誌包括:錯誤日誌、通用查詢日誌、二進位制日誌、慢查詢日誌等等。這裡主要介紹下比較常用的兩個功能:通用查詢日誌和慢查詢日誌。
錯誤日誌:記錄啟動、執行或停止mysqld時出現的問題。
通用日誌:記錄建立的客戶端連線和執行的語句。
二進位制日誌:記錄所有更改資料的語句。還用於複製。
慢查詢日誌:記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。
innodb日誌:innodb redo log
# 查詢所有日誌情況
mysql> show variables like "%log%";
# 查詢錯誤日誌檔案路徑
mysql> show variables like 'log_error';# 查詢二進位制日誌檔案路徑
mysql> show variables like "%log_bin%";
# 查詢慢查詢日誌檔案路徑
mysql> show variables like 'slow_query_log_file';
錯誤日誌
通用查詢日誌
通用查詢日誌:記錄建立的客戶端連線和執行的語句。開啟 general_log 將所有到達mysql server的sql語句記錄下來。其中general_log_file中記錄了sql歷史。不用的時候盡量關閉,因為log佔據磁碟空間較大。
general_log:日誌功能是否開啟,預設關閉off。開啟之後,執行的sql語句全部記錄到日誌檔案裡。
general_log_file:日誌檔案儲存位置。
log_output:日誌的輸出型別,是檔案還是**。
# 檢視通用日誌檔案引數
mysql> show variables like 'general%';
# 檢視通用日誌是否開啟
mysql> show variables like 'general_log';
# 查詢通用日誌檔案的路徑
mysql> show variables like 'general_log_file';
# 檢視通用日誌的輸出型別:table或file
mysql> show variables like '%log_output%';
臨時設定
# 臨時開啟通用日誌查詢:
mysql> set global general_log = on;
# 臨時關閉通用日誌查詢:
mysql> set global general_log = off;
# 設定通用日誌檔案儲存位置
mysql> set global general_log_file = 'tmp/general.log';
# 設定通用日誌輸出為表方式:
mysql> set global log_output = 'table';
# 設定通用日誌輸出為檔案方式
mysql> set global log_output = 'file';
# 設定通用日誌輸出為表和檔案方式:
mysql> set global log_output = 'file,table';
1.如果慢檔案格式為file格式,儲存在資料庫的資料檔案中的hostname.log。log_output='file' 表示將日誌存入檔案,預設值是file。
2.如果慢檔案格式是table格式,儲存在資料庫的資料檔案中的mysql.general_log。log_output='table'表示將日誌存入資料庫,這樣日誌資訊就會被寫入到mysql.slow_log表中。
3.注意:上述命令只對當前生效,當mysql重啟失效,如果要永久生效,需要配置my.cnf檔案。
永久配置:修改my.cnf配置檔案
# 值為1表示開啟通用日誌查詢,值為0表示關閉通用日誌查詢
general_log = 1
# 設定通用日誌檔案的路徑
# 設定通用日誌的輸出格式為檔案和表
log_output=file,table
二進位制日誌
慢查詢日誌
慢查詢日誌:記錄所有執行時間超過long_query_time秒的所有查詢或者不使用索引的查詢
Mysql 日誌檔案系統
mysql中的日誌包括 錯誤日誌 通用查詢日誌 二進位制日誌 慢查詢日誌等等。這裡主要介紹下比較常用的兩個功能 通用查詢日誌和慢查詢日誌。錯誤日誌 記錄啟動 執行或停止mysqld時出現的問題。通用日誌 記錄建立的客戶端連線和執行的語句。二進位制日誌 記錄所有更改資料的語句。還用於複製。慢查詢日誌 ...
Mysql 日誌,日誌檔案
mysql.log 是mysql 的日誌檔案,裡面記錄的對 mysql 資料庫的操作記錄。預設情況下 mysql 的日誌檔案沒有產生,需要修改 mysql 的配置檔案,步驟如下 一 使用下面的命令開啟 mysql 的配置檔案,去除 68,69 行的注釋,然後儲存。sudo vi etc mysql ...
MySQL日誌系統
從乙個更新操作開始 mysql create table t id int primary key,c int mysql update t set c c 1 where id 2 與查詢流程不一樣的是,更新流程還涉及兩個重要的日誌模組,它們正是我們今天要討論的主角 redo log 重做日誌 和...