主頁 > 知識庫 > mysql日志系統(tǒng)的簡單使用教程

mysql日志系統(tǒng)的簡單使用教程

熱門標簽:服務外包 呼叫中心市場需求 Linux服務器 地方門戶網(wǎng)站 百度競價排名 網(wǎng)站排名優(yōu)化 AI電銷 鐵路電話系統(tǒng)

前言

MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產品。MySQL 是最流行的關系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件之一。

在任何一種數(shù)據(jù)庫中,都會有各種各樣的日志,記錄著數(shù)據(jù)庫工作的方方面面,以幫助數(shù)據(jù)庫管理員追蹤數(shù)據(jù)庫曾 經發(fā)生過的各種事件。
在 MySQL 中,有 4 種不同的日志,分別是

  • 錯誤日志
  • 二進制日志 (BINLOG 日志)
  • 查詢日志
  • 慢查詢日志

這些日志記錄著數(shù)據(jù)庫在不同方面的蹤跡,學會使用mysql日志對我們使用和維護數(shù)據(jù)庫有很大幫助。

一、錯誤日志

錯誤日志是 MySQL 中最重要的日志之一,它記錄了當 mysqld 啟動和停止時,以及服務器在運行過程中發(fā)生任何嚴重錯誤時的相關信息。當數(shù)據(jù)庫出現(xiàn)任何故障導致無法正常使用時,可以首先查看此日志。
該日志是默認開啟的 , 默認存放目錄為 mysql 的數(shù)據(jù)目錄(var/lib/mysql), 默認的日志文件名為 hostname.err(hostname是主機名)。

1、查看日志位置

show variables like 'log_error%';

2、查看日志內容

tail -f /var/lib/mysql/xxx.err

二、二進制日志

二進制日志(BINLOG)記錄了所有的 DDL(數(shù)據(jù)定義語言)語句和 DML(數(shù)據(jù)操縱語言)語句,但是不包括數(shù)據(jù)查詢語句。此日志對于災難時的數(shù)據(jù)恢復起著極其重要的作用,MySQL的主從復制, 就是通過該binlog實現(xiàn)的。

1、開啟二進制日志

二進制日志,默認情況下是沒有開啟的,需要到MySQL的配置文件中開啟,并配置MySQL日志的格式。

  • 配置文件位置 : /etc/my.cnf
  • 日志存放位置 : 配置時,給定了文件名但是沒有指定路徑,日志默認寫入Mysql的數(shù)據(jù)目錄。
#配置開啟binlog日志, 日志的文件前綴為 mysqlbin -----> 生成的文件名如 : mysqlbin.000001,mysqlbin.000002 
log_bin=mysqlbin
 
#配置二進制日志的格式 
binlog_format=STATEMENT

2、二進制日志格式

(1)STATEMENT

該日志格式在日志文件中記錄的都是SQL語句(statement),每一條對數(shù)據(jù)進行修改的SQL都會記錄在日志文件中,通過Mysql提供的mysqlbinlog工具,可以清晰的查看到每條語句的文本。主從復制的時候,從庫(slave)會將日志解析為原文本,并在從庫重新執(zhí)行一次。

(2)ROW

該日志格式在日志文件中記錄的是每一行的數(shù)據(jù)變更,而不是記錄SQL語句。比如,執(zhí)行SQL語句 :update tb_book set status='1' , 如果是STATEMENT 日志格式,在日志中會記錄一行SQL文件; 如果是ROW,由于是對全表進行更新,也就是每一行記錄都會發(fā)生變更,ROW 格式的日志中會記錄每一行的數(shù)據(jù)變更。

(3)MIXED

這是目前MySQL默認的日志格式,即混合了STATEMENT 和 ROW兩種格式。默認情況下采用STATEMENT,但是在一些特殊情況下采用ROW來進行記錄。MIXED 格式能盡量利用兩種模式的優(yōu)點,而避開他們的缺點。

3、日志讀取

由于日志以二進制方式存儲,不能直接讀取,需要用mysqlbinlog工具來查看,語法如下

mysqlbinlog log-file; 

4、查看STATEMENT格式日志

(1)執(zhí)行插入語句

insert into tb_book values(null,'Lucene','2088-05-01','0');

(2)在mysql數(shù)據(jù)文件目錄找到二進制文件

mysqlbin.index是日志索引文件,記錄日志的文件名。mysql-bin.000001是日志文件

(3)查看日志文件


5、查看ROW格式日志

(1)在配置文件中進行配置

#配置開啟binlog日志, 日志的文件前綴為 mysqlbin -----> 生成的文件名如 : mysqlbin.000001,mysqlbin.000002 
log_bin=mysqlbin
 
#配置二進制日志的格式 
binlog_format=ROW 

注:每次修改配置文件都記得重啟mysql服務

service mysql restart

(2)插入數(shù)據(jù)

如果日志格式是ROW,直接查看數(shù)據(jù)是看不懂的,可以在mysqlbinlog后面加上參數(shù)-vv使用--no-defaults參數(shù)可以避免字符集帶來的影響

6、

6、日志刪除

對于比較繁忙的系統(tǒng),由于每天生成日志量大 ,這些日志如果長時間不清楚,將會占用大量的磁盤空間。下面講解幾種刪除日志的常見方法

(1)方法一

通過 Reset Master 指令刪除全部 binlog 日志,刪除之后,日志編號,將從 xxxx.000001重新開始 。

刪除之前 ,先查詢下日志文件 :

執(zhí)行刪除日志指令

Reset Master

再查詢一下

最后剩下的000001是一個空的配置文件

(2)方法二

purge master logs to 'mysqlbin.******

該命令將刪除******編號之前的所有日志

(3)方法三

purge master logs vefore 'yyyy-mm-dd hh24:mi:ss'

該命令將刪除yyyy-mm-dd hh24:mi:ss之前產生的所有日志

(4)方法四

設置參數(shù) expire_logs_days=#,此參數(shù)的含義是設置日志的過期天數(shù),過了指定的天數(shù)后日志將被自動刪除,這樣有利于減少DBA管理日志的工作量

三、查詢日志

查詢日志中記錄了客戶端的所有操作語句,而二進制日志不包含查詢數(shù)據(jù)的SQL語句。

默認情況下, 查詢日志是未開啟的。如果需要開啟查詢日志,可以設置以下配置

#該選項用來開啟查詢日志 , 可選值 : 0 或者 1 ; 0 代表關閉, 1 代表開啟 
general_log=1
 
#設置日志的文件名 , 如果沒有指定, 默認的文件名為 host_name.log 
general_log_file=file_name 

1、開啟查詢日志

2、執(zhí)行一組操作

3、查看查詢日志

四、慢查詢日志

慢查詢日志記錄了所有執(zhí)行時間超過參數(shù) long_query_time 設置值并且掃描記錄數(shù)不小于min_examined_row_limit 的所有的SQL語句的日志。long_query_time 默認為 10 秒,最小為 0, 精度可以到微秒。

1、文件位置和格式

慢查詢日志默認是關閉的 ??梢酝ㄟ^兩個參數(shù)來控制慢查詢日志

# 該參數(shù)用來控制慢查詢日志是否開啟, 可取值: 1 和 0 , 1 代表開啟, 0 代表關閉 
slow_query_log=1 
 
# 該參數(shù)用來指定慢查詢日志的文件名 
slow_query_log_file=slow_query.log
 
# 該選項用來配置查詢的時間限制, 超過這個時間將認為值慢查詢, 將需要進行日志記錄, 默認10s 
long_query_time=10

一般設置成2s左右就可以了,在我的實驗中,為了完成慢查詢,我設置成了0.5s

在mysql客戶端下可以查詢到當前的long_query_time

2、執(zhí)行查詢操作

(1)查詢之前先看一眼慢查詢日志

(2)執(zhí)行一個比較快的查詢動作

(3)執(zhí)行一個慢的查詢動作

如果慢查詢日志內容很多, 直接查看文件,比較麻煩, 這個時候可以借助于mysql自帶的 mysqldumpslow 工具, 來對慢查詢日志進行分類匯總。

由于這里只有一條慢查詢記錄,沒有體現(xiàn)出mysqldumpslow的作用,但如果慢查詢記錄多,就可以分類匯總

總結

到此這篇關于mysql日志系統(tǒng)的簡單使用教程的文章就介紹到這了,更多相關mysql日志系統(tǒng)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL5.7慢查詢日志時間與系統(tǒng)時間差8小時原因詳解
  • Laravel框架使用monolog_mysql實現(xiàn)將系統(tǒng)日志信息保存到mysql數(shù)據(jù)庫的方法
  • MySQL日志系統(tǒng)詳細資料分享
  • mysql日志文件在哪 如何修改MySQL日志文件位置
  • mysql通過查看跟蹤日志跟蹤執(zhí)行的sql語句
  • 查看MySQL的錯誤日志的方法
  • MySQL日志設置及查看方法
  • MySQL Innodb表導致死鎖日志情況分析與歸納
  • mysql 正確清理binlog日志的兩種方法
  • Ubuntu下啟動、停止、重啟MySQL,查看錯誤日志命令大全

標簽:仙桃 黃山 湖南 崇左 蘭州 湘潭 銅川 衡水

巨人網(wǎng)絡通訊聲明:本文標題《mysql日志系統(tǒng)的簡單使用教程》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266