溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql數(shù)據(jù)庫怎么管理日志

發(fā)布時(shí)間:2020-06-02 13:55:07 來源:億速云 閱讀:183 作者:Leah 欄目:MySQL數(shù)據(jù)庫

Mysql數(shù)據(jù)庫怎么管理日志?針對(duì)這個(gè)問題,今天小編總結(jié)這篇有關(guān)日志管理的文章,可供感興趣的小伙伴們參考借鑒,希望對(duì)大家有所幫助

 一般成熟的軟件,都會(huì)有自己的日志文件。通過這些日志來快速定位問題。在Mysql中,日志分為以下幾類:

  • 慢查詢?nèi)罩?,?dāng)sql的執(zhí)行時(shí)間超過設(shè)定值時(shí),便會(huì)記錄

  • 錯(cuò)誤日志,mysql啟動(dòng)、停止或運(yùn)行時(shí)發(fā)生錯(cuò)誤時(shí),會(huì)記錄到錯(cuò)誤日志里

  • 二進(jìn)制日志,該日志記錄那些改變數(shù)據(jù)庫數(shù)據(jù)時(shí)的sql語句,通過他,我們可以來恢復(fù)Mysql數(shù)據(jù)

  • 查詢?nèi)罩荆?dāng)開啟時(shí),會(huì)記錄查詢SQL。

錯(cuò)誤日志

錯(cuò)誤日志寫記錄Mysql啟動(dòng)、停止時(shí)出現(xiàn)的問題,另外也記錄Mysql在運(yùn)行中發(fā)生的重大問題??梢允褂胹how variables like 'log_err%';查看錯(cuò)誤日志文件的位置。

mysql> show variables like 'log_err%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| log_error           | ./iZbp171edtq2kx5iy0xufeZ.err |
| log_error_verbosity | 3                             |
+---------------------+-------------------------------+
2 rows in set (0.01 sec)

錯(cuò)誤日志,默認(rèn)使用主機(jī)名作為文件名,以err作為后綴名,存放在mysql目錄下的/var目錄中。如果我們想修改的話,可以修改配置文件log_error項(xiàng)??梢允褂孟鄬?duì)路徑或絕對(duì)路徑,使用相對(duì)路徑的話只會(huì)修改錯(cuò)誤日志文件名,而使用絕對(duì)路徑則可以修改錯(cuò)誤日志存放的位置。

錯(cuò)誤日志的查看也非常簡單,直接使用cat或vim來查看即可。

通用查詢?nèi)罩?/span>

通用查詢?nèi)罩緯?huì)記錄用戶所有的操作,所以一般占用空間較大,日常運(yùn)維中一般都不會(huì)開啟,并且默認(rèn)情況也是關(guān)閉該日志的。如想開啟的話,則可以在配置文件中加入log選項(xiàng)。

慢查詢?nèi)罩?/span>

慢查詢是一個(gè)非常好的排查SQL問題工具,很多情況下,都是我們的sql導(dǎo)致系統(tǒng)運(yùn)行不暢。筆者以前犯過這個(gè)錯(cuò)誤,使用的一條非常復(fù)雜的查詢語句,系統(tǒng)剛上不舊就502了。前段時(shí)間,發(fā)現(xiàn)公司的老項(xiàng)目也是出現(xiàn)了相應(yīng)的問題,該項(xiàng)目使用的dedecms,當(dāng)數(shù)據(jù)量達(dá)到一定程度,就會(huì)出現(xiàn)大量的慢查詢,然后整個(gè)系統(tǒng)的cpu就跑滿了。所以,我們要經(jīng)常查看慢查詢?nèi)罩?,找過sql的問題所在。

慢查詢配置項(xiàng)

  • slow-query-log={0|off|1|on}  是否開啟慢查詢?nèi)罩竟δ?/p>

  • slow-query-time=10 設(shè)定的閥值,單位為秒,支持浮點(diǎn)數(shù)。當(dāng)sql的執(zhí)行時(shí)間超過該值,就會(huì)記錄在慢查詢?nèi)罩局?。如果設(shè)置為0,則會(huì)記錄所有查詢

  • slow_query_log_file=/mydata/data/hostname-slow.log 慢查詢?nèi)罩敬娣诺奈恢眉拔募?/p>

  • log_queries_not_using_indexes=OFF 該項(xiàng)表示沒有使用索引的查詢也會(huì)記錄到慢查詢?nèi)罩局腥ァ?/p>

案例

現(xiàn)在,我將自己的mysql的慢查詢?nèi)罩敬蜷_,并且將時(shí)間設(shè)置為0,記錄所有的SQL。然后來帶大伙看看慢查詢?nèi)罩臼窃鯓拥摹?/p>

Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2020-05-31T12:00:01.895700Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.000170  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
use blog;
SET timestamp=1590926401;
SET NAMES utf8mb4;
# Time: 2020-05-31T12:00:01.902684Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.006914  Lock_time: 0.006529 Rows_sent: 0  Rows_examined: 120
SET timestamp=1590926401;
SELECT * FROM knowledge 
            WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400   ORDER BY  show_time ASC 
            LIMIT 1;

我們主要看Query_time行

  • Query_time:查詢時(shí)間

  • Lock_time:鎖表時(shí)間

  • Rows_sent:獲取的數(shù)據(jù)行

  • Rows_examined:掃描的數(shù)據(jù)行

關(guān)于MySQL的日志管理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI