mysql日志類型簡介
mysql的日志大概可以分成三種,錯誤日志(error_log),查詢日志(query_log),二進制日志(binary_log):
-
查詢日志(query log):一般的,查詢日志可以分為兩種,通用查詢日志(general query log)和慢查詢日志(slow query log);其中,通用查詢日志可以用來各客戶端連接時的相關信息和在數據庫上執行的SQL語句;慢查詢日志記錄了SQL語句時間超過了預設的long_query_time的語句,在數據量較大的情況下,可以看看慢查詢日志中有哪些語句需要進行優化。
-
二進制日志(binary_log):簡單來說,二進制日志記錄了對MySQL更新的操作,主要目的是盡可能的將數據庫恢復到數據庫故障點,因為二進制日志包含備份后進行的所有更新。
三種日志各有不同的作用,同時也需要不同的方法進行配置,這里先講普通的error log的配置方法,其它兩種日后補充。
error_log
相似與Oracle中的alert,MySQL的error log用于記錄錯誤信息的log,但error記錄的不僅僅是錯誤信息,有關服務進程的錯誤信息也會被記錄(critical級別);如果mysqld進程發現某些表需要自動檢查或者修復的話,也會拋出相關信息到該log。
配置方法
1、找到配置文件/etc/my.cnf,如果找不到find / -type f -name ‘my.cnf’全局查找即可
2、將錯誤日志參數寫入配置文件
[mysqld_safe]log-error=/var/lib/mysql/mysql.err
3、另一種方法
MySQL在命令行啟動時,可以添加日志的加載參數–log-output,其中–log-output還有三種可選參數來制定日志文件輸出方式:
– TABLE:將日志記錄至數據庫表中
– FILE:將日志記錄在文件中
– NONE:不記錄
舉例
-
啟用錯誤日志,并記錄日志文件到數據庫表和日志文件中:
–log-output=TABLE,FILE –error_log -
啟用慢查詢日志和普通查詢日志,并將它們的日志記錄在表中:–log-output=TABLE –general_log –slow_query_log
-
啟用慢查詢日志,記錄到日志文件中,并制定輸出路徑:–log-output=FILE –slow_query_log –slow_query_log_file=/var/lib/mysql/- mysql_slow.log
設置成功后,進入查看:
mysql>?show?variables?like?'log_error'; +---------------+---------------------+|?Variable_name?|?Value???????????????| +---------------+---------------------+|?log_error?????|?/var/log/mysqld.log?| +---------------+---------------------+1?row?in?set?(0.00?sec) [root@localhost?mysql]#?tailf?/var/log/mysqld.log 2017-08-07T12:32:54.258884Z?0?[Note]?IPv6?is?available. 2017-08-07T12:32:54.258892Z?0?[Note]???-?'::'?resolves?to?'::'; 2017-08-07T12:32:54.258908Z?0?[Note]?Server?socket?created?on?IP:?'::'. 2017-08-07T12:32:54.259622Z?0?[Note]?InnoDB:?Loading?buffer?pool(s)?from?/var/lib/mysql/ib_buffer_pool 2017-08-07T12:32:54.260814Z?0?[Note]?InnoDB:?Buffer?pool(s)?load?completed?at?170807??8:32:54 2017-08-07T12:32:54.266749Z?0?[Note]?/usr/sbin/mysqld:?ready?for?connections. Version:?'5.7.19'??socket:?'/var/lib/mysql/mysql.sock'??port:?3306??MySQL?Community?Server?(GPL) 2017-08-07T12:32:54.266772Z?0?[Note]?Executing?'SELECT?*?FROM?INFORMATION_SCHEMA.TABLES;'?to?get?a?list?of?tables?using?the?deprecated?partition?engine.?You?may?use?the?startup?option?'--disable-partition-engine-check'?to?skip?this?check.? 2017-08-07T12:32:54.266774Z?0?[Note]?Beginning?of?list?of?non-natively?partitioned?tables 2017-08-07T12:32:54.318211Z?0?[Note]?End?of?list?of?non-natively?partitioned?tables