我們都很熟悉MySQL日誌,本文主要介紹了MySQL日誌設定及查看方法,需要的朋友可以參考下,希望能幫助到大家。
MySQL有以下幾種日誌:
錯誤日誌: -log-err
查詢日誌: -log
慢查詢日誌: -log-slow-queries
更新日誌: -log-update
二進位日誌: -log-bin
預設情況下,所有日誌都會建立於mysqld資料目錄中。透過刷新日誌,你可以強制 mysqld來關閉和重新開啟日誌檔案(或在某些情況下切換到一個新的日誌)。當你執行一個FLUSH LOGS語句或執行mysqladmin flush-logs或mysqladmin refresh時,出現日誌刷新
1.錯誤日誌
用--log- error[=file_name]選項來指定mysqld保存錯誤日誌檔案的位置。如果沒有給定file_name值,mysqld使用錯誤日誌名稱 host_name.err 並在資料目錄中寫入日誌檔案。如果你執行FLUSH LOGS,錯誤日誌用-old重新命名後綴並且mysqld建立一個新的空日誌檔。 (如果未給出--log-error選項,則不會重新命名)。
如果不指定--log-error,或(在Windows中)如果你使用--console選項,錯誤被寫入標準錯誤輸出stderr。通常標準輸出為你的終端。
2. 一般查詢日誌
以--log[=file_name]或-l [file_name]選項啟動它。如果沒有給定file_name的值,預設名稱是host_name.log。
#3. 慢速查詢日誌
使用--log-slow-queries[=file_name]選項啟動時,mysqld 寫一個包含所有執行時間超過long_query_time秒的SQL語句的日誌檔.如果沒有給file_name值,預設未主機名,後綴為-slow.log。如果給了檔案名,但不是絕對路徑名,檔案則寫入資料目錄。
#3. 更新日誌
使用--log-update[=file_name]選項啟動,不建議使用.
是否啟用了日誌
mysql> ;show variables like 'log_%';
怎麼知道目前的日誌
mysql> show master status;
顯示二進位日誌數目
mysql> show master logs;
看二進位日誌檔用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或shell>mysqlbinlog mail-bin.000001 | tail
#在設定檔中指定log的輸出位置.
Windows:Windows 的設定值
#在設定檔中指定log的輸出位置.##Windows:Windows:Windows 的設定值:Windows:Windows 的設定值檔案為my.ini,一般在MySQL 的安裝目錄下或c:\Windows 下。 Linux:Linux 的設定檔為 my.cnf ,一般在 /etc 下。
在linux下:
# 在[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 # 在[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
Sql程式碼# 在[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"
# 在[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 --对所有执行语句进行记录 windows下开启mysql日志: 在[mysql]下加入这些(基本上等于加在最后面): log-error= #Enter a name for the query log file. Otherwise a default name will be used. #注:(写成txt文件editplus可以及时重载,不过有时要放在C盘下editplus才可以及时重载) log= c:/mysql_query.log.txt #Enter a name for the slow query log file. Otherwise a default name will be used. log-slow-queries= #Enter a name for the update log file. Otherwise a default name will be used. log-update= #Enter a name for the binary log. Otherwise a default name will be used. log-bin=
以上是MySQL日誌設定及查看方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!