MySQL數(shù)據(jù)庫(kù)怎么管理日志?針對(duì)這個(gè)問(wèn)題,今天小編總結(jié)這篇有關(guān)日志管理的文章,可供感興趣的小伙伴們參考借鑒,希望對(duì)大家有所幫助
創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、宏偉網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為宏偉等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
一般成熟的軟件,都會(huì)有自己的日志文件。通過(guò)這些日志來(lái)快速定位問(wèn)題。在Mysql中,日志分為以下幾類:
慢查詢?nèi)罩?,?dāng)sql的執(zhí)行時(shí)間超過(guò)設(shè)定值時(shí),便會(huì)記錄
錯(cuò)誤日志,mysql啟動(dòng)、停止或運(yùn)行時(shí)發(fā)生錯(cuò)誤時(shí),會(huì)記錄到錯(cuò)誤日志里
二進(jìn)制日志,該日志記錄那些改變數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)的sql語(yǔ)句,通過(guò)他,我們可以來(lái)恢復(fù)Mysql數(shù)據(jù)
查詢?nèi)罩?,?dāng)開啟時(shí),會(huì)記錄查詢SQL。
錯(cuò)誤日志
錯(cuò)誤日志寫記錄Mysql啟動(dòng)、停止時(shí)出現(xiàn)的問(wèn)題,另外也記錄Mysql在運(yùn)行中發(fā)生的重大問(wèn)題??梢允褂胹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ò)誤日志的查看也非常簡(jiǎn)單,直接使用cat或vim來(lái)查看即可。
通用查詢?nèi)罩?/strong>
通用查詢?nèi)罩緯?huì)記錄用戶所有的操作,所以一般占用空間較大,日常運(yùn)維中一般都不會(huì)開啟,并且默認(rèn)情況也是關(guān)閉該日志的。如想開啟的話,則可以在配置文件中加入log選項(xiàng)。
慢查詢?nèi)罩?/strong>
慢查詢是一個(gè)非常好的排查SQL問(wèn)題工具,很多情況下,都是我們的sql導(dǎo)致系統(tǒng)運(yùn)行不暢。筆者以前犯過(guò)這個(gè)錯(cuò)誤,使用的一條非常復(fù)雜的查詢語(yǔ)句,系統(tǒng)剛上不舊就502了。前段時(shí)間,發(fā)現(xiàn)公司的老項(xiàng)目也是出現(xiàn)了相應(yīng)的問(wèn)題,該項(xiàng)目使用的dedecms,當(dāng)數(shù)據(jù)量達(dá)到一定程度,就會(huì)出現(xiàn)大量的慢查詢,然后整個(gè)系統(tǒng)的cpu就跑滿了。所以,我們要經(jīng)常查看慢查詢?nèi)罩荆疫^(guò)sql的問(wèn)題所在。
慢查詢配置項(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í)間超過(guò)該值,就會(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)表示沒(méi)有使用索引的查詢也會(huì)記錄到慢查詢?nèi)罩局腥ァ?/p>
案例
現(xiàn)在,我將自己的mysql的慢查詢?nèi)罩敬蜷_,并且將時(shí)間設(shè)置為0,記錄所有的SQL。然后來(lái)帶大伙看看慢查詢?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í)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。