MySQL5.7 四種日誌文件

mysql 日誌包括:錯誤日誌,二進制日誌,通用查詢日誌,慢日誌等
一:通用查詢日誌:
記錄建立的客戶端連接和執行的語句
1)show variables like '%verision%'; 顯示數據庫版本號,存儲引擎等信息
mysql> show variables like '%version%';
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.18 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1 |
| version | 5.7.18-log |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Win64 |
+-------------------------+------------------------------+
8 rows in set, 1 warning (0.04 sec)

2)查看當前的通用日誌是否開啓
show variables like '%general%';
mysql> show variables like '%general%';
+------------------+--------------------+
| Variable_name | Value |
+------------------+--------------------+
| general_log | OFF |
| general_log_file | PC201608171713.log |
+------------------+--------------------+
2 rows in set, 1 warning (0.00 sec)
開啓通用日誌查詢: set global general_log = on;
關閉通用日誌查詢:set global general_log = off;

3)查看當前慢文件的格式
show variables like '%log_output%';
mysql> show variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set, 1 warning (0.00 sec)
當前慢文件格式爲file ,存儲在數據庫的數據文件中的hostname.log
可以是table格式,存儲在數據庫的數據文件中的mysql.general_log
設置通用日誌輸出爲表方式:
set global log_output = 'file';
設置通用日誌輸出爲表和文件方式:
set global log_output = 'file,table';

二:慢查詢日誌:
記錄所有執行時間超過long_query_time秒的所有查詢或者不適用索引的查詢
默認情況下,MySQL不開啓慢查詢日誌,long_query_time的默認值爲10,即運行時間超過10s的語句是慢查詢語句。
一般來說,慢查詢發生在大表中,且查詢的字段沒有建立索引,此時,要匹配查詢的字段會對全表進行掃描,耗時查long_query_time表
查看當前慢查詢日誌的開啓情況:
show variables like '%query%';
mysql> show variables like '%quer%';
+----------------------------------------+-------------------------+
| Variable_name | Value |
+----------------------------------------+-------------------------+
| binlog_rows_query_log_events | OFF |
| ft_query_expansion_limit | 20 |
| have_query_cache | YES |
| log_queries_not_using_indexes | OFF |
| log_throttle_queries_not_using_indexes | 0 |
| long_query_time | 10.000000 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | OFF |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| slow_query_log | ON |
| slow_query_log_file | PC201608171713-slow.log |
+----------------------------------------+-------------------------+
15 rows in set, 1 warning (0.00 sec)

其中:
1)slow_query_log 的值爲ON 爲開啓慢查詢日誌,off表示關閉慢查詢日誌
2) slow_query_log_file 的值是記錄的慢查詢日誌到文件中(默認爲主機 名.log)
3)long_query_time 指定了慢查詢的閾值,即執行語句的時間若超過這個值則爲慢查詢語句
4)log_queries_not_using_indexes 如果該值是ON,則會記錄所有沒有利用索引來進行查詢的語句,前提是slow_query_log 的值也是ON,否則,不會奏效
查詢當前慢查詢的語句個數:
show global status like '%slow%';
可以通過查詢語句查看慢查詢的語句:
select * from mysql.slow_log;
三:錯誤日誌
MySQL錯誤日誌世紀路MySQL運行過程中較爲嚴重的警告和錯誤信息,以及MySQL每次啓動和關閉的詳細信息。錯誤日誌的命名通常爲服務器主機名.err
查看錯誤日誌的詳細信息:
show variables like '%log_err%';
mysql> show variables like '%log_error%';
+---------------------+----------------------+
| Variable_name | Value |
+---------------------+----------------------+
| binlog_error_action | ABORT_SERVER |
| log_error | .\PC201608171713.err |
| log_error_verbosity | 3 |
+---------------------+----------------------+
3 rows in set, 1 warning (0.00 sec)
錯誤日誌歸檔,備份錯誤日誌
shell>mv host_name.err host_name.err-old
shell> mysqladmin -u root -p flush-logs
ahell>mv host_name.err-old back-directory

四:二進制日誌
包含了所有更新了的數據或者潛在更新了的數據,
包含關於每個更新數據庫的語句的執行時間信息
目的:
儘可能將數據庫恢復到是巨酷故障點,因爲二進制日誌包含備份後進行的所有更新,用於在主複製服務器上記錄所有將發生送給從服務器的語句
刪除所有二進制文件:
reset master
刪除部分二進制文件:
purge master logs
查看是否啓用二進制日誌:
show variables like '%log_bin%';
查看所有的二進制參數
show variables like '%binlog%';
查看文件的位置
show variables like '%datadir%';

發佈了39 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章