溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中的日志類型(一)-摘要和日志的共同特征

發(fā)布時間:2020-07-12 19:56:15 來源:網(wǎng)絡(luò) 閱讀:607 作者:月飲沙 欄目:MySQL數(shù)據(jù)庫

MySQL中的日志類型

MySQL具有多種日志,用來記錄mysqld的活動情況,以下為MySQL中的類型及其簡要說明。

日志類型 說明
General query log 記錄從客戶端獲取到的連接和語句
Slow query log 記錄超過long_query_time時間的查詢
Error log 記錄在mysqld服務(wù)啟動、運行或停止時遇到的問題
Binary log 記錄修改數(shù)據(jù)的語句
Relay log 在復(fù)制結(jié)構(gòu)中,從庫從主庫獲取到的數(shù)據(jù)修改
DDL log(metadata log ) DD語句執(zhí)行的元數(shù)據(jù)操作

默認情況下,除了Windows系統(tǒng)上的Error log,其他日志都是不可用的。

下面將按照日志的共同特征、每個日志的特點來討論這些日志的情況

日志的共同特征

日志的啟用

默認情況下,除了Windows系統(tǒng)上的Error log,其他日志都是不可用的,要開啟這些日志,需要在數(shù)據(jù)庫啟動時指定相應(yīng)的選項

日志類型 開啟選項
General query log --general_log
Slow query log --slow_query_log
Binary log --log-bin
Error log --log-error
Relay log 不需要額外開啟
DDL log 不需要額外開啟

general query log和slow query log也可以在數(shù)據(jù)庫運行時進行啟用或禁用??梢酝ㄟ^設(shè)置全局變量general_log和slow_query_log來控制他們的啟用和禁用,例如:

SET GLOBAL general_log = 'OFF';
SET GLOBAL slow_query_log = 'ON';

日志文件名稱及位置

默認情況下,日志都存放在數(shù)據(jù)庫的數(shù)據(jù)目錄下??梢酝ㄟ^相應(yīng)的選項來修改位置和名稱。具體可以參考下表,在下表中,host_name代表數(shù)據(jù)庫服務(wù)器的主機名,nnnnnn代表一個6位的整數(shù)序列。file_namebase_name是指定的文件名稱??梢酝ㄟ^在file_namebase_name中使用絕對路徑來修改日志存放的位置。

日志類型 默認名稱 相應(yīng)選項
General query log host_name.log --general_log_file=file_name
Slow query log host_name-slow.log --slow_query_log_file=file_name
Binary log pif-file-bin --log_bin=base_name
Error log host_name.err --log_error=file_name
Relay log hostname-relay-bin.nnnnnn --relay-log=file_name
DDL log ddl_log.log 無法修改

general query log和slow query log除了記錄在日志文件中以外,也可以記錄在日志表中。日志表在mysql庫中。名稱分別為general_log和slow_log。可以通過--log-output來指定將這兩種日志的存放位置,位置可以是表、文件、或者表和文件。

Binary log日志文件的默認名稱是pid-file的值加上-bin后綴。默認pid-file的值是服務(wù)器的主機名。但是不建議使用默認值,當(dāng)使用默認值時,如果服務(wù)器的主機名發(fā)生變更,Binary log日志文件的名稱也需要進行相應(yīng)更改。

日志刷新

日志刷新會關(guān)閉然后重新打開日志文件。對于binary log和relay log,還會創(chuàng)建一個新的日志文件。
日志刷新發(fā)生在以下情況下:
1.使用FLUSH LOGS語句
2.使用帶有flush-logs或者reflush選項的mysqladmin命令
3.使用帶有--flush-logs或者--master-data選項的mysqldump命令

FLUSH LOGS語句會關(guān)閉并重新打開所有的日志文件,如果需要只刷新某種日志文件,需要指定日志類型,例如:

FLUSH SLOW LOGS

日志記錄時間

日志類型 記錄時間
generl query log 在服務(wù)器接收到客戶端發(fā)來的命令時就寫入到日志中。
slow query log 在語句執(zhí)行完畢,釋放鎖之后寫入到日志中。
binary log 在語句執(zhí)行完畢,釋放鎖之前寫入到日志中。
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI