查詢mysql日誌文件,如何查看mysql日誌文件

本文目錄一覽:

如何查詢MySql日誌

開啟MySQL日誌:

找到my.ini文件

打開 log-bin=”D:\log\mysql_bin”

就會生成形如:

mysql_bin.000001

mysql_bin.index

這樣的文件。

查看MySQL日誌:

D:\mysql\binmysqlbinlog mysql_bin.000001

導出MySQL日誌到文本文件:

D:\mysql\binmysqlbinlog D:\mysql\data\mysql_bin.000002 D:\b.txt

更新MySQL日誌:

mysqladmin -u root -p password flush-logs

就會生成新的日誌文件,序號是連接起來的,比如上一個日誌文件名為:

mysql_bin.000001

執行命令後就會生成新的日誌文件:

mysql_bin.000002

MySQL的通用查詢日誌

查詢日誌記錄 MySQL 中所有的 query,通過「—log[=fina_name]」來打開該功能。由

於記錄了所有的 query,包括所有的 select,體積比較大,開啟後對性能也有較大的影響, 所以請大家慎用該功能。 一般只用於跟蹤某些特殊的sql 性能問題才會短暫打開該功能。默認的查詢日誌文件名為 hostname.log。

慢查詢日誌

顧名思義,慢查詢日誌中記錄的是執行時間較長的 query,也就是我們常說的 slow

query,通過設 —log-slow-queries[=file_name]來打開該功能並設置記錄位置和文件名, 默認文件名為 hostname-slow.log,默認目錄也是數據目錄。

慢查詢日誌採用的’是簡單的文本格式, 可以通過各種文本編輯器查看其中的內容。中其 記錄了語句執行的時刻,執行所消耗的時間,執行用戶,連接主機等相關信息。MySQL 還提 供了專門用來分析滿查詢日誌的工具程序mysqlslowdump, 用來幫助數據庫管理人員解決可 能存在的性能問題。

如何查看mysql數據庫操作記錄日誌?

有時候我們會不小心對一個大表進行了 update,比如說寫錯了 where 條件……

此時,如果 kill 掉 update 線程,那回滾 undo log 需要不少時間。如果放置不管,也不知道 update 會持續多久。

那我們能知道 update 的進度么?

實驗

我們先創建一個測試數據庫:

快速創建一些數據:

連續執行同樣的 SQL 數次,就可以快速構造千萬級別的數據:

查看一下總的行數:

我們來釋放一個大的 update:

然後另起一個 session,觀察 performance_schema 中的信息:

可以看到,performance_schema 會列出當前 SQL 從引擎獲取的行數。

等 SQL 結束後,我們看一下 update 從引擎總共獲取了多少行:

可以看到該 update 從引擎總共獲取的行數是表大小的兩倍,那我們可以估算:update 的進度 = (rows_examined) / (2 * 錶行數)

?小貼士

information_schema.tables 中,提供了對錶行數的估算,比起使用 select count(1) 的成本低很多,幾乎可以忽略不計。

那麼是不是所有的 update,從引擎中獲取的行數都會是表大小的兩倍呢?這個還是要分情況討論的,上面的 SQL 更新了主鍵,如果只更新內容而不更新主鍵呢?我們來試驗一下:

等待 update 結束,查看 row_examined,發現其剛好是表大小:

那我們怎麼準確的這個倍數呢?

一種方法是靠經驗:update 語句的 where 中會掃描多少行,是否修改主鍵,是否修改唯一鍵,以這些條件來估算係數。

另一種方法就是在同樣結構的較小的表上試驗一下,獲取倍數。

這樣,我們就能準確估算一個大型 update 的進度了。

如何查看mysql日誌

1.首先確認你日誌是否啟用了

MySQLshow variables like ‘log_bin’;

2.如果啟用了,即ON那日誌文件就在MySQL的安裝目錄的data目錄下

3.當前的日誌

MySQL show master status;

4.看二進制日誌文件用MySQLbinlog

shellMySQLbinlog mail-bin.000001

或者

shellMySQLbinlog mail-bin.000001 | tail

怎麼查看mysql日誌

MySQL的日誌文件模塊啟動後才會有日誌記錄。

開啟日誌服務:

在MY.INI里,MYSQLD項下添加log-bin=mysql。

如果只對某個庫進行日誌文件記錄,那麼再添加binlog-do-db=test,這樣就只記錄test數據庫的日誌,而放棄其他的。

添加完後,重新啟動MYSQL的服務,日誌文件開始工作了.

查看是否啟用了日誌命令:mysqlshow variables like ‘log_bin’;

查看當前的日誌命令:mysql show master status;

看二進制日誌文件用mysqlbinlog命令:shellmysqlbinlog mail-bin.000001

原創文章,作者:HURUO,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/317363.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HURUO的頭像HURUO
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相關推薦

發表回復

登錄後才能評論