MySQL5.7 四種日誌文件

mysql 日誌包括:錯誤日誌,二進制日誌,通用查詢日誌,慢日誌等mysql

一:通用查詢日誌:sql

記錄創建的客戶端鏈接和執行的語句shell

1)show variables like '%verision%'; 顯示數據庫版本號,存儲引擎等信息數據庫

mysql> show variables like '%version%';服務器

+-------------------------+------------------------------+日誌

| Variable_name | Value |索引

+-------------------------+------------------------------+it

| innodb_version | 5.7.18 |io

| protocol_version | 10 |innodb

| 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%';

相關文章
相關標籤/搜索