天天看點

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守護程序啟動與運作所産生的日志

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

mysql 日志檔案

由于采用的是wdlinux一鍵安裝包搭建lnmp環境,是以日志路徑會與yum安裝不同。

通用查詢日志用來記錄使用者的所有操作,包括啟動和關閉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.

mysql 日志檔案

通過編輯/etc/my.cnf來增加通用日志檔案記錄

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

mysql 日志檔案

添加完後通過mysqladmin -u root -p flush-logs指令重新整理

檢視是否啟動通用查詢日志

mysql 日志檔案

二進制日志       所有更改資料的語句。還用于複制。

二進制日志也叫作變更日志(update log),主要用于記錄資料庫的變化情況。通過二進制日志可以查詢mysql資料庫中進行了哪些改變。

mysql 日志檔案

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實用工具檢查二進制日志檔案。如果你想要重新處理日志止的語句。

mysql 日志檔案

注意: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