MySQL各種日誌的簡介和設定方法
MySQL主要的日誌檔案有以下幾種。
錯誤日誌
記錄 MySQL 啟動、執行和關閉時遇到的問題。
可以在 mysqld 後面加上引數 --log-error[=file_name]來指定路徑,也可以在配置檔案中增加log-error[=file_name]來指定路徑。
一般查詢日誌
記錄客戶端連線和從客戶端接收的SQL語句,當檢查客戶端錯誤的時候,這個日誌非常有用。查詢日誌預設是關閉的。可以將查詢日誌記錄到資料庫的表中,也可以將其記錄到日誌檔案中,
使用 --log-output=TABLE,FILE 這個引數。使用 --general_log[={0|1}] 來啟用或關閉查詢日誌。可以透過 --general_log_file=file_name 指定日誌的名稱。
二進位制日誌
記錄資料庫的改變,例如表的建立,表中資料的變化或刪除。這個日誌有兩種主要的用途:
(1) 在複製的時候,主節點將二進位制日誌傳送給備節點,以供備節點應用。
(2) 某些資料恢復的時候需要使用二進位制日誌。
二進位制日誌不記錄 SELECT 或 SHOW 這些不涉及資料改變的語句。如果想記錄所有的 SQL 語句,可以使用查詢日誌。要開啟二進位制日誌,可以在啟動服務的時候加上 --log-bin[=base_name] 引數。
慢查詢日誌
記錄執行時間超過 long_query_time 閥值的查詢。還要配合另外一個引數——min_examined_row_limit,這個引數的含義是少於這個行數的查詢將不會記錄到緩慢查詢日誌。long_query_time 的單位是微秒。
預設,管理語句和沒有使用索引的查詢不會被記錄。要開啟慢查詢日誌,可以在啟動服務的時候加上 --slow_query_log[={0|1}]引數,1代表開啟日誌,0代表關閉日誌。
可以透過--slow_query_log_file=file_name引數來指定慢查詢日誌的名稱。可以透過--log-output指定慢查詢日誌的路徑。如果你不指定慢查詢日誌的名稱,則 mysql 會將慢查詢日誌的名稱指定為 host_name-slow.log。
log_queries_not_using_indexes決定不使用索引的查詢是否被記錄到慢查詢日誌
mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF |
+-------------------------------+-------+
1 row in set (0.00 sec)
DDL日誌
記錄DDL操作時的後設資料,如DROP TABLE、ALTER TABLE語句。MySQL使用DDL日誌來恢復中斷的後設資料操作。DDL日誌存放在資料目錄中,檔名為ddl_log.log,它是一個二進位制日誌,不要人為地編輯這個日誌。
在使用日誌時,可用FLUSH LOGS語句來重新整理和重新開始所有日誌檔案;重新整理前備份對應的日誌。
shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory
日誌的設定方法
[root@T400-kelong log]# vim /etc/my.cnf
..
#error log
log-error=/log/err.log
#general query log
log-output=FILE
general_log=1
general_log_file=/log/general_query.log
#bin log
server_id=100
log-bin=/log/product-bin
#slow query log
slow_query_log=1
slow_query_log_file=/log/slow_query.log
設定引數檔案後,啟動資料庫
在資料庫裡面檢視設定的引數檔案
mysql> show variables like '%query_log%';
+------------------------------+---------------------+
| Variable_name | Value |
+------------------------------+---------------------+
| binlog_rows_query_log_events | OFF |
| slow_query_log | ON |
| slow_query_log_file | /log/slow_query.log |
+------------------------------+---------------------+
3 rows in set (0.00 sec)
mysql> show variables like '%general_log%';
+------------------+------------------------+
| Variable_name | Value |
+------------------+------------------------+
| general_log | ON |
| general_log_file | /log/general_query.log |
+------------------+------------------------+
2 rows in set (0.00 sec)
mysql> show variables like '%log_bin%';
+---------------------------------+------------------------+
| Variable_name | Value |
+---------------------------------+------------------------+
| log_bin | ON |
| log_bin_basename | /log/product-bin |
| log_bin_index | /log/product-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+------------------------+
6 rows in set (0.00 sec)
mysql> show variables like '%error%';
+---------------------+--------------+
| Variable_name | Value |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| error_count | 0 |
| log_error | /log/err.log |
| log_error_verbosity | 3 |
| max_connect_errors | 100 |
| max_error_count | 64 |
| slave_skip_errors | OFF |
+---------------------+--------------+
7 rows in set (0.00 sec)
檢視生成的日誌檔案
[root@T400-kelong log]# ls
err.log general_query.log product-bin.000001 product-bin.000002 product-bin.index slow_query.log
錯誤日誌
記錄 MySQL 啟動、執行和關閉時遇到的問題。
可以在 mysqld 後面加上引數 --log-error[=file_name]來指定路徑,也可以在配置檔案中增加log-error[=file_name]來指定路徑。
一般查詢日誌
記錄客戶端連線和從客戶端接收的SQL語句,當檢查客戶端錯誤的時候,這個日誌非常有用。查詢日誌預設是關閉的。可以將查詢日誌記錄到資料庫的表中,也可以將其記錄到日誌檔案中,
使用 --log-output=TABLE,FILE 這個引數。使用 --general_log[={0|1}] 來啟用或關閉查詢日誌。可以透過 --general_log_file=file_name 指定日誌的名稱。
二進位制日誌
記錄資料庫的改變,例如表的建立,表中資料的變化或刪除。這個日誌有兩種主要的用途:
(1) 在複製的時候,主節點將二進位制日誌傳送給備節點,以供備節點應用。
(2) 某些資料恢復的時候需要使用二進位制日誌。
二進位制日誌不記錄 SELECT 或 SHOW 這些不涉及資料改變的語句。如果想記錄所有的 SQL 語句,可以使用查詢日誌。要開啟二進位制日誌,可以在啟動服務的時候加上 --log-bin[=base_name] 引數。
慢查詢日誌
記錄執行時間超過 long_query_time 閥值的查詢。還要配合另外一個引數——min_examined_row_limit,這個引數的含義是少於這個行數的查詢將不會記錄到緩慢查詢日誌。long_query_time 的單位是微秒。
預設,管理語句和沒有使用索引的查詢不會被記錄。要開啟慢查詢日誌,可以在啟動服務的時候加上 --slow_query_log[={0|1}]引數,1代表開啟日誌,0代表關閉日誌。
可以透過--slow_query_log_file=file_name引數來指定慢查詢日誌的名稱。可以透過--log-output指定慢查詢日誌的路徑。如果你不指定慢查詢日誌的名稱,則 mysql 會將慢查詢日誌的名稱指定為 host_name-slow.log。
log_queries_not_using_indexes決定不使用索引的查詢是否被記錄到慢查詢日誌
mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF |
+-------------------------------+-------+
1 row in set (0.00 sec)
DDL日誌
記錄DDL操作時的後設資料,如DROP TABLE、ALTER TABLE語句。MySQL使用DDL日誌來恢復中斷的後設資料操作。DDL日誌存放在資料目錄中,檔名為ddl_log.log,它是一個二進位制日誌,不要人為地編輯這個日誌。
在使用日誌時,可用FLUSH LOGS語句來重新整理和重新開始所有日誌檔案;重新整理前備份對應的日誌。
shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory
日誌的設定方法
[root@T400-kelong log]# vim /etc/my.cnf
..
#error log
log-error=/log/err.log
#general query log
log-output=FILE
general_log=1
general_log_file=/log/general_query.log
#bin log
server_id=100
log-bin=/log/product-bin
#slow query log
slow_query_log=1
slow_query_log_file=/log/slow_query.log
設定引數檔案後,啟動資料庫
在資料庫裡面檢視設定的引數檔案
mysql> show variables like '%query_log%';
+------------------------------+---------------------+
| Variable_name | Value |
+------------------------------+---------------------+
| binlog_rows_query_log_events | OFF |
| slow_query_log | ON |
| slow_query_log_file | /log/slow_query.log |
+------------------------------+---------------------+
3 rows in set (0.00 sec)
mysql> show variables like '%general_log%';
+------------------+------------------------+
| Variable_name | Value |
+------------------+------------------------+
| general_log | ON |
| general_log_file | /log/general_query.log |
+------------------+------------------------+
2 rows in set (0.00 sec)
mysql> show variables like '%log_bin%';
+---------------------------------+------------------------+
| Variable_name | Value |
+---------------------------------+------------------------+
| log_bin | ON |
| log_bin_basename | /log/product-bin |
| log_bin_index | /log/product-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+------------------------+
6 rows in set (0.00 sec)
mysql> show variables like '%error%';
+---------------------+--------------+
| Variable_name | Value |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| error_count | 0 |
| log_error | /log/err.log |
| log_error_verbosity | 3 |
| max_connect_errors | 100 |
| max_error_count | 64 |
| slave_skip_errors | OFF |
+---------------------+--------------+
7 rows in set (0.00 sec)
[root@T400-kelong log]# ls
err.log general_query.log product-bin.000001 product-bin.000002 product-bin.index slow_query.log
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2060119/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單介紹MySQL列印死鎖日誌的方法MySql
- MySQL日誌引數配置簡介MySql
- 掌握Java各種日誌框架Java框架
- MySQL慢查詢日誌相關設定MySql
- 帶你掌握Java各種日誌框架Java框架
- eclipse設定檢視GC日誌和如何理解GC日誌EclipseGC
- Beego(簡介、配置、路由、日誌)Go路由
- MySQL中幾種常見的日誌MySql
- Apache Camel日誌四種方法Apache
- Nginx日誌格式設定Nginx
- Springboot 整合logback 日誌框架簡介Spring Boot框架
- JSP簡介以及各種內建物件的用法JS物件
- mysql日誌系統簡單使用MySql
- MySQL四種日誌binlog/redolog/relaylog/undologMySql
- 基於事件日誌的流程挖掘簡介 - Chaudhuri事件
- keepalived(五)設定單獨的日誌
- SVN提交日誌模板設定
- 設定mybatis 是否列印日誌MyBatis
- MySQL之事務和redo日誌MySql
- 對 MySQL 慢查詢日誌的簡單分析MySql
- mysql二進位制日誌的引數介紹MySql
- MySQL 的日誌:binlogMySql
- Tomcat各種日誌的關係與catalina.out檔案的分割Tomcat
- MYSQL日誌的正確刪除方法詳解MySql
- PostgreSQL DBA(3) - 日誌分析工具pgbadger簡介SQL
- Mysql日誌MySql
- 簡單介紹下各種 JavaScript 解析器JavaScript
- 重新整理 mysql 基礎篇————— 介紹mysql日誌[二]MySql
- 一種簡化操作日誌記錄方案
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- Linux 中實時檢視日誌的3種方法Linux
- Android中圖片圓形設定三種方法介紹Android
- 關於MySQL 通用查詢日誌和慢查詢日誌分析MySql
- 好程式設計師Python培訓之log日誌功能及設定方法程式設計師Python
- MySQL中處理各種重複的一些方法MySql
- 23種設計模式簡介設計模式
- MySQL的日誌總結MySql
- mysql 鎖的慢日誌MySql
- MongoDB Sharding Balancer介紹和設定方法舉例MongoDB