您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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有幾種日志”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。