MySQL日誌文件的開啓與參數詳解

MySQL日誌文件主要有錯誤日誌、慢查詢日誌、查詢日誌、二進制日誌。這篇筆記的定位是各種日誌文件的開啓和參數的解釋
1 .錯誤日誌(error log)
用來記錄MySQL的啓動和關閉以及重要的錯誤信息。

啓動時參數配置文件中配置:
    #開啓並指定錯誤日誌文件所在目錄及其名稱 ,默認時爲主機名+.err
    log_error = /var/log/mysql/lzg-Lenovo-G40-70m.err

2 .慢查詢日誌( slow query log)
用來記錄查詢時間超過long_query_time或者沒有使用索引的查詢語句

啓動時參數配置文件中配置:
    #啓動slow query log
    slow_query_log
    #設置參數slow_query_log_file
    slow_query_log_file=/var/log/mysql/mysql-slow.log
    #設置參數log-query-not-using-indexes
    log-query-not-using-indexes
    #設置參數long_query_time
    long_query_time=2

參數解釋:

  • slow_query_log控制slow query log的開關,值爲on表示開,off表示關
  • slow_query_log_file表示slow query log文件所在位置及其文件名
  • log-query-not-using-indexes表示記錄未使用索引的查詢語句到slow query log中
  • long_query_time表示查詢時間超過這個閥值的SQL語句記錄到slow query log (等於這個閥值的時候不會記錄)
  • log_output指定slow query log的輸出格式,FILE(到文件)、TABLE(到表)、NONE(都不到) NONE優先級最高,FILE和TABLE優先級一樣

3 .查詢日誌(general log)
用來記錄所有對MySQL數據庫的請求信息,無論是否得到正確的執行。

    啓動時參數配置文件中配置:
        #開啓查詢日誌
        general_log
        #設置查詢日誌文件的目錄和名稱,默認時爲主機名+.log
        general_log_file=/var/log/mysql/lzg-Lenovo-G40-70m.log

4 .二進制日誌(binary log)
記錄對MySQL數據庫執行更改的所有操作。

    啓動時參數配置文件中配置:
        #開啓二進制日誌並指定bin log 的所在目錄及其名稱
        log_bin = /var/log/mysql/lzg-Lenovo-G40-70m-bin
        #server_id是mysql 5.7之後開啓bin log必須要指定的,大概是因爲bin log是服務器級別的日誌
        server_id =1
        #設置參數binlog_format
        binlog_format=statement
        #設置參數max_binlog_size
        max_binlog_size= 100M
        #設置參數sync_binlog
        sync_binlog=1

參數解釋:

  • binlog_format表示二進制日誌的格式,有三種
    1. statement 表示bin log記錄的是邏輯SQL語句
    2. row 表示bin log記錄的是表中行的更改情況
    3. mixed 是statement和row的混合,一般情況下使用statement,當可能存在主從不一致的情況下使用row
  • max_binlog_size 指定單個bin log文件的最大值
  • sync_binlog表示每寫緩衝多少次就同步到磁盤,設置爲1時表示採用同步寫磁盤的方式來寫bin log
  • binlog-do-db 需要寫入這些指定庫的日誌
  • binlog-ignore-db 不需要寫入這些指定庫的日誌
  • expire_logs_days 設置日誌的過期天數,過來這個值的天數的bin log就會被自動刪除

由於binlog是二進制的,而前面的查詢日誌、慢查詢日誌、錯誤日誌都是文本的,所以,前面的日誌可以直接查看,binlog日誌必須要使用mysqlbinlog工具來查看

一些日誌相關的mysql命令:

    flush logs #是來刷新數據庫日誌的。
    show binary logs  #顯示binlog文件
    show master logs  #同上   
    show binlog events in 主機名-bin.*******   #查看binlog中的內容
    reset master #刪除binlog日誌文件,並新建一個000001的binlog
    purge master logs to 主機名-bin.****** #刪除******編號之前的所有日誌
    purge master logs before 'yyyy-mm-dd hh24:mi:ss'#刪除日記爲"yyyy-mm-dd hh24:mi:ss"之前所產生的日誌
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章