MySQL主要日誌的基本操作與簡單解析

2021-08-20 13:58:11 字數 3545 閱讀 6569

1. 錯誤日誌

2. 通用查詢日誌

3. 慢查詢日誌

4. 二進位制日誌

5. ddl日誌

日誌是mysql資料庫很重要的一部分,用來記錄資料庫執行期間發生的變化,比如mysql資料庫的客戶端連線狀況、sql語句的執**況和錯誤資訊等你都可以在日誌檔案中檢視到,當資料庫莫名其妙崩了,或是出現錯誤的時候,都可以通過日誌來排查問題。

預設情況下,所有日誌建立於mysqld資料目錄中。

mysql資料庫官方文件

官方文件為英文版本,英文好的小夥伴可自行翻閱~

預設情況下,錯誤日誌是預設開啟的。除錯誤日誌外其他日誌預設都是關閉狀態。

錯誤日誌的內容比較多,我會單獨寫一篇文章。

此處先留空~

通用查詢日誌是記錄所有mysql資料庫請求資訊的,客戶端連線或斷開連線的資訊都會寫入此日誌,並記錄從客戶端接收到的每條sql語句。也就是說不管你對資料庫做了啥,有沒有得到正確的反饋,都會被記錄下來。

show variables like

'%general_log%';(檢視開啟狀態)

set

global general_log = on;(開啟查詢日誌)

(開啟有風險,操作需謹慎~ 會影響一定的效能 生產環境下不建議開啟)一般有兩種形式,一種是輸出到檔案中,一種是寫入資料**中。

show variables like

'log_output';(檢視狀態)

如果想更換為寫入資料表,命令如下:

set

global log_output='table';

注意:如果設定log_output=table的話,則日誌結果會記錄到名為gengera_log.csv的表中每條操作都記錄是很消耗效能的,那麼我們來關閉它。

set

global general_log=off;(關閉查詢日誌)

簡單來講,慢查詢日誌就是用來記錄執行時間超過指定時間的查詢語句,long_query_time的最小值和預設值分別 為0和10(秒)。

當然預設情況下,慢查詢日誌是禁用的。

我們可以手動開啟,然後通過慢查詢日誌,查詢出哪些查詢語句的執行效率低,進行優化。

慢查詢日誌支援將記錄寫入檔案,也支援將記錄寫入資料庫表。

預設情況下slow_query_log為off

開啟方法:設定slow_query_log的值為1來開啟

set

global slow_query_log=1;

query ok之後就可以看到如下圖,**第二行為日誌檔案儲存的路徑

show variables  like

'%slow_query_log%';

但是!這種方法只是臨時生效!!!如果你不小心重啟了伺服器,那麼不好意思,請重新配置一遍吧,如果你想的起來的話….

那麼,如何讓它永久生效呢?

修改配置檔案my.cnf檔案,增加或修改引數slow_query_log 和slow_query_log_file,然後重啟mysql服務

slow_query_log =

1long_query_time=

3(慢查詢設定的時間閾值,表示執行超過3秒的sql語句都會被記錄下來)

slow_query_log_file=/www/server/data/mysql-slow

.log(此處為你想指定的存放路徑)

log-queries

-not

-using

-indexes(表示記錄下沒有使用索引的查詢)

重啟mysql服務:

service mysql restart
檢視設定的時間閾值為多少

show

global variables like

'long_query_time';

設定時間閾值:

set

global long_query_time=10;

使用more檢視日誌內容

more /www/server/data/mysql-slow

.log

此處不再做過多的贅述,詳細了解請翻閱文件。

mysql的二進位制日誌記錄了對mysql資料庫執行更改的所有操作,並且記錄了更新資料語句發生時間、執行時長、等額外資訊,但是不記錄查詢等不修改資料的sql語句。

顧名思義,它是乙個二進位制檔案,主要用於資料庫恢復和主從複製,以及審計操作。

show variables like

'log_bin';(檢視開啟狀態)

圖中mysql-bin.index的檔案是儲存所有二進位制日誌檔案的清單,又稱為二進位制檔案的索引。

開啟方法:直接修改配置檔案

my.cnf檔案中mysqld下面新增log-bin =dir\filename

dir為目錄 filename為檔名

eg:log_bin=/mysql/bin_log/mysql_binlog(設定日誌檔案路徑)

二進位制日誌有兩個重要目的:

1. 對於複製,主復**務器上的二進位制日誌提供了要傳送給從伺服器的資料更改記錄。主伺服器將其二進位制日誌中包含的事件傳送給其從伺服器,從伺服器執行這些事件以對主伺服器進行相同的資料更改。

2. 某些資料恢復操作需要使用二進位制日誌。備份恢復後,重新執行備份後記錄的二進位制日誌中的事件。這些事件從備份的角度使資料庫保持最新狀態。

purge binary logs before '2018-05-20 00:00:00';(清除某個時間點以前的二進位制日誌檔案)

reset master;(清除所有的二進位制日誌檔案)

show binary logs;

詳細請參見mysql官方文件ddl日誌或元資料日誌記錄由資料定義語句(如drop table和) 生成的元資料操作 alter table。

mysql用此日誌來恢復元資料操作中發生的崩潰。

元資料操作的記錄會寫入到mysql資料目錄中的ddl_log.log(二進位制檔案)中。

目前,ddl_log.log最多可容納1048573個條目,大小相當於4 gb。超過此限制後,必須重新命名或刪除檔案,才能執行其他ddl語句。

如有錯誤,歡迎指正

mysql 查詢日誌基本操作

mysql查詢日誌記錄了所有mysql資料庫請求資訊,由於mysql慢查詢也可以直觀的查詢到資料庫執行資訊,故mysql查詢日誌用到的場景不多。基本操作 1.開啟查詢日誌 set global general log on 2.關閉查詢日誌 set global general log off 3....

MySQL介紹與基本操作

前身屬於瑞典的一家公司,mysql ab 08年被sun公司收購 09年sun被oracle收購 1 開源 免費 成本低 2 效能高 移植性也好 3 體積小,便於安裝 屬於c s架構的軟體,一般來講安裝服務端 企業版社群版 5.55.6 5.78.0 方式一 計算機 右擊管理 服務 方式二 通過管理...

mysql搭建與基本操作

mysql資料庫基本操作 mysql資料庫簡介 mysql是乙個真正的多執行緒,多使用者的sql資料庫服務,憑藉其高效能,高可靠和易於使用的特性,成為伺服器領域中最受歡迎的開源資料庫系統。目前mysql專案由oracle公司負責運營與維護。其預設埠通過tcp 3306埠對映服務 可以通過 etc m...