在mysql中日志分為,錯誤日志: -log-err 查詢日志: -log 慢查詢日志: -log-slow-queries 更新日志: -log-update 二進制日志: -log-bin下面我來介紹這四種mysql日志開啟關閉與查看方法。
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、查看日志
查看是否啟用了日志
代碼如下 復制代碼 mysql>show variables like ‘log_%’;查看當前的日志啟用狀態
代碼如下 復制代碼 mysql> show master status;顯示二進制日志?的?/p> 代碼如下 復制代碼 mysql> show master logs;
4、查看二進制日志文件用mysqlbinlog
代碼如下 復制代碼shell>mysqlbinlog /var/log/mysql/mysql-bin.000001
或者shell>mysqlbinlog /var/log/mysql/mysql-bin.000001 | tail
或者shell>mysqlbinlog /var/log/mysql/mysql-bin.000001 –no-default
如果遇到錯誤提示如下:
代碼如下 復制代碼 /usr/local/mysql/bin/mysqlbinlog: unknown variable ‘default-character-set=utf8′產生這個問題的原因是因為在my.cnf中的client選項組中添加了
代碼如下 復制代碼 default-character-set=utf8選項。
mysqlbinlog不支持這個設置,解決辦法有兩個:
1、修改配置文件my.cnf(windows下是my.ini)
注釋掉default-character-set=utf8
2、執行時添加參數–no-default
為了方便查看日志內容 可以導出到.sql文件
mysqlbinlog ../log-bin/logbin.000001 ->a.sql
C:/Program Files/MySQL/MySQL Server 5.0/bin>
C:/Program Files/MySQL/MySQL Server 5.0/bin>mysqlbinlog ../log_bin_ljs/logbin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#100830 16:30:55 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.
67-community-nt-log created 100830 16:30:55 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed wri
ting it.
ROLLBACK/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/ ;
C:/Program Files/MySQL/MySQL Server 5.0/bin>