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守護進程啓動與運行所產生的日誌
由於採用的是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.
通過編輯/etc/my.cnf來增加通用日誌文件記錄
log=/www/wdlinux/mysql-5.1.69/var/localhost.log
添加完後通過mysqladmin -u root -p flush-logs命令刷新
查看是否啓動通用查詢日誌
二進制日誌 所有更改數據的語句。還用於複製。
二進制日誌也叫作變更日誌(update log),主要用於記錄數據庫的變化情況。通過二進制日誌可以查詢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實用工具檢查二進制日誌文件。如果你想要重新處理日誌止的語句。
注意: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