mysql 日誌文件

           原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://linchao52.blog.51cto.com/3509589/1340858

MySQL有幾個不同的日誌文件,可以幫助你找出mysqld內部發生的事情:

1.錯誤日誌:log_error

2.通用查詢日誌: general_query log

3.二進制日誌:log_bin

4.慢查詢日誌:log_slow_queries

錯誤日誌(The error log)記錄啓動、運行或停止mysqld時出現的問題。

錯誤日誌文件包含了當mysqld啓動和停止時,以及服務器在運行過程中發生任何嚴重錯誤時的相關信息。

   --log-error=[file-name]用來指定錯誤日誌存放的位置。

  如果沒有指定[file-name],默認hostname.err(本文文件名爲localhost.localdomain.err)做爲文件名,默認存放在目錄中。

  也可以將log-error配置到my.cnf文件中,這樣就省去了每次在啓動mysqld時都手工指定--log-error.


下圖清楚的記錄着mysqld守護進程啓動與運行所產生的日誌

在日常維護中,錯誤日誌可以幫助我們快速處理故障。
172320307.jpg

由於採用的是wdlinux一鍵安裝包搭建lnmp環境,所以日誌路徑會與yum安裝不同。


通用查詢日誌(The query log):記錄建立的客戶端連接和執行的語句。

通用查詢日誌用來記錄用戶的所有操作,包括啓動和關閉MySQL服務、更新語句、查詢語句等。

如果你想要知道mysqld內部發生了什麼,你應該用--log[=file_name]或-l [file_name]選項啓動它。如果沒有給定file_name的值, 默認名是host_name.log。所有連接和語句被記錄到日誌文件。當你懷疑在客戶端發生了錯誤並想確切地知道該客戶端發送給mysqld的語句時,該日誌可能非常有用。
mysqld按照它接收的順序記錄語句到查詢日誌。這可能與執行的順序不同。這與更新日誌和二進制日誌不同,它們在查詢執行後,但是任何一個鎖釋放之前記錄日誌。(查詢日誌還包含所有語句,而二進制日誌不包含只查詢數據的語句)。

可通過>show variables like'&general_log';命令查找通用查詢日誌完整路徑。

默認情況下,general query log是禁用的。 存放在data directory 目錄下,默認文件名是host_name.log.

175353452.jpg


通過編輯/etc/my.cnf來增加通用日誌文件記錄

log=/www/wdlinux/mysql-5.1.69/var/localhost.log

202528372.jpg

添加完後通過mysqladmin -u root -p flush-logs命令刷新

查看是否啓動通用查詢日誌

202938820.jpg


二進制日誌       所有更改數據的語句。還用於複製。

二進制日誌也叫作變更日誌(update log),主要用於記錄數據庫的變化情況。通過二進制日誌可以查詢MySQL數據庫中進行了哪些改變。

203320195.jpg

mysql默認是沒有開啓bin-log日誌,首先我們需要開啓bin-log日誌,

在my.cnf中修改

[mysqld]

log-bin=/www/wdlinux/mysql-5.1.69/var/mysql-bin.log

指定了bin-log日誌的路徑,開啓日誌後需要mysqladmin -u root -p flush-logs才生效,重啓後我們發現在剛纔設定的路徑新增了log文件,這就是我們需要的二進制日誌

你可以用mysqlbinlog實用工具檢查二進制日誌文件。如果你想要重新處理日誌止的語句。

203616903.jpg

注意:1.啓用binary log會對性能帶來一定影響。

2.binary log 不記錄沒有修改data 的操作,如select 或show。

慢日誌        記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

慢查詢日誌用來記錄執行時間超過指定時間的查詢語句。通過慢查詢日誌,可以查找出哪些查詢語句的執行效率很低,以便進行優化。

默認情況下,slow query log 是禁用的

在沒有指定slow query log file 名稱的情況下, 默認文件名是:host_name-slow.log.默認的存放在data directory目錄下。

在runtime 狀態也可以通過slow_query_log和 slow_query_log_file 來修改。

slow query log 應該受保護,因爲裏面可能包含密碼。

語句執行完並且所有鎖釋放後記入慢查詢日誌。記錄順序可以與執行順序不相同。

慢查詢日誌可以用來找到執行時間長的查詢,可以用於優化。但是,檢查又長又慢的查詢日誌會很困難。

通過slow query log 可以來對相關的SQL 進行優化,但是直接查看log 比較困難,可以使用mysqldumpslow 命令對log 進行dump 之後在查看。

參考:mysql官方中文手冊  http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#log-files

      Dave大哥博客: http://blog.csdn.net/tianlesoftware/article/details/7028304



本文出自 “溫柔的風” 博客,請務必保留此出處http://linchao52.blog.51cto.com/3509589/1340858


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章