java實時監控mysql數據庫變化


對於二次開發來說,很大一部分就找找文件和找數據庫的變化情況

對於數據庫變化。還沒有發現比較好用的監控數據庫變化監控軟件。

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

1、打開數據庫配置文件my.ini (一般在數據庫安裝目錄)(D:\MYSQL)

2、在數據庫的最后一行添加

log=log.txt

代碼

3、重啟mysql數據

4、去數據庫數據目錄 我的是(D:\MYSQL\data) 你會發現多了一個log.txt文件

我的是在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\data

測試:
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日志的關閉與開啟:

使用以下命令查看是否啟用了日志

  1. mysql>show variables like 'log_%’; 

 

凡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創建的二進制的文件目錄:

 

  1. Mysql> show master logs; 

 

查看當前二進制文件狀態:

 

  1. mysql> show master status;  

 

至於准確的看懂日志文件,還需要讀者仔細閱讀,深深體會,這里就不再奧述了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM