實時監控mysql資料庫變化

2021-09-07 00:19:05 字數 4280 閱讀 8677

對於二次開發來說,很大一部分就找找檔案和找資料庫的變化情況

對於資料庫變化。還沒有發現比較好用的監控資料庫變化監控軟體。

今天,我就給大家介紹乙個如何使用mysql自帶的功能監控資料庫變化

1、開啟資料庫配置檔案my.ini (一般在資料庫安裝目錄)(d:\mysql)

2、在資料庫的最後一行新增

log=log.txt
**

3、重啟mysql資料

4、去資料庫資料目錄 我的是(d:\mysql\data) 你會發現多了乙個log.txt檔案

測試: 1、對資料庫操作 2、檢視log.txt檔案內容 如果發現有變化說明你就可以監控到mysql資料庫的變化資料庫的查詢 刪除 更新 插入都可以查到

日誌檔案型別概述:   

1.錯誤日誌 記錄啟動、執行或停止mysqld時出現的問題。

my.ini配置資訊:

#enter a name for the error log file. otherwise a default name will be used.

#log-error=d:/mysql_log_err.txt

2.查詢日誌 記錄建立的客戶端連線和執行的語句。

my.ini配置資訊:

#enter a name for the query log file. otherwise a default name will be used.

#log=d:/mysql_log.txt

3.更新日誌 記錄更改資料的語句。不贊成使用該日誌。

my.ini配置資訊:

#enter a name for the update log file. otherwise a default name will be used.

#log-update=d:/mysql_log_update.txt

4.二進位制日誌 記錄所有更改資料的語句。還用於複製。

my.ini配置資訊:

#enter a name for the binary log. otherwise a default name will be used.

#log-bin=d:/mysql_log_bin

5.慢日誌 記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

my.ini配置資訊:

#enter a name for the slow query log file. otherwise a default name will be used.

#long_query_time =1

#log-slow-queries= d:/mysql_log_slow.txt

在linux下:

sql**

1. # 在[mysqld] 中輸入

2. #log

3. log-error=/usr/local/mysql/log/error.log

4. log=/usr/local/mysql/log/mysql.log

5. long_query_time=2

6. log-slow-queries= /usr/local/mysql/log/slowquery.log

# 在[mysqld] 中輸入 #log log-error=/usr/local/mysql/log/error.log log=/usr/local/mysql/log/mysql.log long_query_time=2 log-slow-queries= /usr/local/mysql/log/slowquery.log

windows下:

sql**

1. # 在[mysqld] 中輸入

2. #log

3. log-error="e:/progra~1/easyph~1.0b1/mysql/logs/error.log"

4. log="e:/progra~1/easyph~1.0b1/mysql/logs/mysql.log"

5. long_query_time=2

6. log-slow-queries= "e:/progra~1/easyph~1.0b1/mysql/logs/slowquery.log"

# 在[mysqld] 中輸入 #log log-error="e:/progra~1/easyph~1.0b1/mysql/logs/error.log" log="e:/progra~1/easyph~1.0b1/mysql/logs/mysql.log" long_query_time=2 log-slow-queries= "e:/progra~1/easyph~1.0b1/mysql/logs/slowquery.log"

開啟慢查詢

long_query_time =2 --是指執行超過多久的sql會被log下來,這裡是2秒

log-slow-queries= /usr/local/mysql/log/slowquery.log --將查詢返回較慢的語句進行記錄

log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下來沒有使用索引的query

log=mylog.log --對所有執行語句進行記錄

日誌的存放:預設情況下,當開啟時,所有的日誌都存放在datadir目錄下. 如果沒有指定名稱的話,它會以後主機名為名稱. 如主機名為songcomputer,則相關就的日誌為songcomputer.log檔案.

mysql日誌的關閉與開啟:

使用以下命令檢視是否啟用了日誌

凡value值為off的表示未開啟服務,若要開啟只需要將上的my.ini配置資訊寫入(my.ini為mysql安裝目錄下),然後去掉前面的「#」 號,再重啟mysql服務。ok,現在會看到指定的日誌檔案已建立。相反地,若要停止mysql日誌服務,只需要將my.ini中對應的配置資訊去掉即 可。

>>>>相應的使用慢日誌查詢

手動的去讀取慢日誌以及修改慢日誌的時間

show variables like 'long%'

會得到慢日誌的時間

進行設定慢日誌的值

set long_query_time =2;

側重的二進位制檔案

二進位制日誌:

從概述中我可以看到my.ini配置資訊的log-bin沒有指定副檔名,這是因為即使你指定上副檔名它也不使用。當mysql建立二進位制日誌檔案 時,首先建立乙個以「mysql_log_bin」為名稱,以「.index」為字尾的檔案;再建立乙個以「mysql_log_bin」為名稱,以 「.000001」為字尾的檔案。當mysql服務重新啟動一次以「.000001」為字尾的檔案會增加乙個,並且字尾名加1遞增;如果日誌長度超過了 max_binlog_size的上限(預設是1g)也會建立乙個新的日誌檔案;使用flush logs(mysql命令符)或者執行mysqladmin –u –p flush-logs(windows命令提示符)也會建立乙個新的日誌檔案。

既然寫入的都是二進位制資料,用記事本開啟檔案是看不到正常資料的,那怎麼檢視呢?

使用bin目錄下mysqlbinlog命令,如:

bin>mysqlbinlog d:/mysql_log/mysql_bin.000001

bin>mysqlbinlog d:/mysql_log/mysql_bin.000002

bin>mysqlbinlog d:/mysql_log/mysql_bin.000003

bin>mysqlbinlog d:/mysql_log/mysql_bin.000004

bin>mysqlbinlog d:/mysql_log/mysql_bin.000005

使用sql語句也可檢視mysql建立的二進位制的檔案目錄:

mysql> show master logs;
檢視當前二進位制檔案狀態:

mysql> show master status;
至於準確的看懂日誌檔案,還需要讀者仔細閱讀,深深體會,這裡就不再奧述了!

實時監控mysql資料庫變化

對於二次開發來說,很大一部分就找找檔案和找資料庫的變化情況 對於資料庫變化。還沒有發現比較好用的監控資料庫變化監控軟體。今天,我就給大家介紹乙個如何使用mysql自帶的功能監控資料庫變化 1 開啟資料庫配置檔案my.ini 一般在資料庫安裝目錄 d mysql 2 在資料庫的最後一行新增 log l...

zabbix實時監控oracle資料變化

如題所示,可以使用zabbix實時監控資料庫的資料變化情況,比如 最近1小時的訂單數變化情況。這樣我們就可以很方便地通過zabbix的web介面觀察oracle等資料庫中的一些資料變化情況,同時還可以新增監控在資料異常時通過郵箱或者簡訊報警 具體實現步驟如下 1 新增乙個指令碼用於執行sql語句獲取...

使用SignalR實時推送資料庫變化

測試環境 net 4.6 vs2017 mvc5 sqlserver2012 1.資料庫 create table dbo carinfo id int identity 1,1 not null,carno varchar 50 not null,lng varchar 50 not null,l...