實際一點:
先以window爲環境:
window下的日誌
日誌文件類型概述:
1.
錯誤日誌 記錄啓動、運行或停止mysqld時出現的問題。
My.ini配置信息:
#Enter a name for the error log file. Otherwise a default name will be used.
#log-error=d:/mysql_log_err.txt
2.
查詢日誌 記錄建立的客戶端連接和執行的語句。
My.ini配置信息:
#Enter a name for the query log file. Otherwise a default name will be used.
#log=d:/mysql_log.txt
3.
更新日誌 記錄更改數據的語句。不贊成使用該日誌。
My.ini配置信息:
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=d:/mysql_log_update.txt
4.
二進制日誌 記錄所有更改數據的語句。還用於複製。
My.ini配置信息:
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=d:/mysql_log_bin
5.
慢日誌 記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。
My.ini配置信息:
#Enter a name for the slow query log file. Otherwise a default name will be used.
#long_query_time =1
#log-slow-queries= d:/mysql_log_slow.txt
Linux下的配置
代碼
在linux下:
Sql代碼
1. # 在[mysqld] 中輸入
2. #log
3. log-error=/usr/local/mysql/log/error.log
4. log=/usr/local/mysql/log/mysql.log
5. long_query_time=2
6. log-slow-queries= /usr/local/mysql/log/slowquery.log
# 在[mysqld] 中輸入 #log log-error=/usr/local/mysql/log/error.log log=/usr/local/mysql/log/mysql.log long_query_time=2 log-slow-queries= /usr/local/mysql/log/slowquery.log
windows下:
Sql代碼
1. # 在[mysqld] 中輸入
2. #log
3. log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
4. log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
5. long_query_time=2
6. log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"
# 在[mysqld] 中輸入 #log log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log" log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log" long_query_time=2 log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"
開啓慢查詢
long_query_time =2 --是指執行超過多久的sql會被log下來,這裏是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --將查詢返回較慢的語句進行記錄
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下來沒有使用索引的query
log=mylog.log --對所有執行語句進行記錄
日誌的存放:默認情況下,當開啓時,所有的日誌都存放在DataDir目錄下. 如果沒有指定名稱的話,它會以後主機名爲名稱. 如主機名爲songcomputer,則相關就的日誌爲songcomputer.log文件.
Mysql日誌的關閉與開啓:
使用以下命令查看是否啓用了日誌
· mysql>show variables like 'log_%’;
凡Value值爲OFF的表示未開啓服務,若要開啓只需要將上的my.ini配置信息寫入(my.ini爲mysql安裝目錄下),然後去掉前面的“#”
號,再重啓mysql服務。OK,現在會看到指定的日誌文件已創建。相反地,若要停止mysql日誌服務,只需要將my.ini中對應的配置信息去掉即
可。
>>>>相應的使用慢日誌查詢
手動的去讀取慢日誌以及修改慢日誌的時間
show variables like 'long%'
會得到慢日誌的時間
進行設置慢日誌的值
set long_query_time =2;
側重的二進制文件
二進制日誌:
從概述中我可以看到my.ini配置信息的log-bin沒有指定文件擴展名,這是因爲即使你指定上擴展名它也不使用。當mysql創建二進制日誌文件
時,首先創建一個以“mysql_log_bin”爲名稱,以“.index”爲後綴的文件;再創建一個以“mysql_log_bin”爲名稱,以
“.000001”爲後綴的文件。當mysql服務重新啓動一次以“.000001”爲後綴的文件會增加一個,並且後綴名加1遞增;如果日誌長度超過了
max_binlog_size的上限(默認是1G)也會創建一個新的日誌文件;使用flush
logs(mysql命令符)或者執行mysqladmin –u –p flush-logs(windows命令提示符)也會創建一個新的日誌文件。
既然寫入的都是二進制數據,用記事本打開文件是看不到正常數據的,那怎麼查看呢?
使用BIN目錄下mysqlbinlog命令,如:
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000001
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000002
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000003
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000004
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000005
使用SQL語句也可查看mysql創建的二進制的文件目錄:
· Mysql> show master logs;
查看當前二進制文件狀態:
· mysql> show master status;
至於準確的看懂日誌文件,還需要讀者仔細閱讀,深深體會,這裏就不再奧述了!