溫馨提示×

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

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

mysql的日志文件是什么

發(fā)布時(shí)間:2022-06-14 09:34:47 來(lái)源:億速云 閱讀:379 作者:zzz 欄目:MySQL數(shù)據(jù)庫(kù)

本篇內(nèi)容介紹了“mysql的日志文件是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

mysql有四種日志文件:1、二進(jìn)制日志文件,該日志文件會(huì)以二進(jìn)制的形式記錄數(shù)據(jù)庫(kù)的各種操作,但不記錄查詢語(yǔ)句;2、錯(cuò)誤日志文件,主要記錄MySQL服務(wù)器啟動(dòng)和停止過(guò)程中的信息、服務(wù)器在運(yùn)行過(guò)程中發(fā)生的故障和異常情況等;3、通用查詢?nèi)罩疚募涗浄?wù)器的啟動(dòng)和關(guān)閉信息、客戶端的連接信息、更新、查詢數(shù)據(jù)記錄的SQL語(yǔ)句等;4、慢查詢?nèi)罩疚募?,主要記錄?zhí)行事件超過(guò)指定時(shí)間的操作。

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

日志是數(shù)據(jù)庫(kù)的重要組成部分,主要用來(lái)記錄數(shù)據(jù)庫(kù)的運(yùn)行情況、日常操作和錯(cuò)誤信息。

在MySQL 中 ,日志文件可以分為4 種:二進(jìn)制日志文件、錯(cuò)誤日志文件、通用查詢?nèi)罩疚募吐樵內(nèi)罩疚募?/strong>

  • 二進(jìn)制日志文件:該日志文件會(huì)以二進(jìn)制的形式記錄數(shù)據(jù)庫(kù)的各種操作,但不記錄查詢語(yǔ)句。主要用于記錄數(shù)據(jù)庫(kù)的變化情況,即 SQL 語(yǔ)句的 DDL 和 DML 語(yǔ)句,不包含數(shù)據(jù)記錄查詢操作。

  • 錯(cuò)誤日志文件:主要記錄 MySQL 服務(wù)器啟動(dòng)和停止過(guò)程中的信息、服務(wù)器在運(yùn)行過(guò)程中發(fā)生的故障和異常情況等。

  • 通用查詢?nèi)罩疚募涸撊罩居涗?MySQL 服務(wù)器的啟動(dòng)和關(guān)閉信息、客戶端的連接信息、更新、查詢數(shù)據(jù)記錄的 SQL 語(yǔ)句等。

  • 慢查詢?nèi)罩疚募河涗泩?zhí)行事件超過(guò)指定時(shí)間的操作,通過(guò)工具分析慢查詢?nèi)罩究梢远ㄎ?MySQL 服務(wù)器性能瓶頸所在。

在 MySQL 所支持的日志文件里,除了二進(jìn)制日志文件外,其它日志文件都是文本文件。默認(rèn)情況下,MySQL 只會(huì)啟動(dòng)錯(cuò)誤日志文件,而其它日志則需要手動(dòng)啟動(dòng)。

使用日志有優(yōu)點(diǎn)也有缺點(diǎn)。啟動(dòng)日志后,雖然可以對(duì) MySQL 服務(wù)器性能進(jìn)行維護(hù),但是會(huì)降低 MySQL 的執(zhí)行速度。例如,一個(gè)查詢操作比較頻繁的 MySQL 中,記錄通用查詢?nèi)罩竞吐樵內(nèi)罩疽ㄙM(fèi)很多的時(shí)間。

日志文件還會(huì)占用大量的硬盤空間。對(duì)于用戶量非常大、操作非常頻繁的數(shù)據(jù)庫(kù),日志文件需要的存儲(chǔ)空間甚至比數(shù)據(jù)庫(kù)文件需要的存儲(chǔ)空間還要大。因此,是否啟動(dòng)日志,啟動(dòng)什么類型的日志要根據(jù)具體的應(yīng)用來(lái)決定。

擴(kuò)展知識(shí):MySQL使用二進(jìn)制日志還原數(shù)據(jù)庫(kù)

二進(jìn)制日志中記錄了用戶對(duì)數(shù)據(jù)庫(kù)更改的所有操作,如 INSERT 語(yǔ)句、UPDATE 語(yǔ)句、CREATE 語(yǔ)句等。如果數(shù)據(jù)庫(kù)因?yàn)椴僮鞑划?dāng)或其它原因丟失了數(shù)據(jù),可以通過(guò)二進(jìn)制日志來(lái)查看在一定時(shí)間段內(nèi)用戶的操作,結(jié)合數(shù)據(jù)庫(kù)備份來(lái)還原數(shù)據(jù)庫(kù)。

下面將詳細(xì)介紹使用二進(jìn)制日志還原數(shù)據(jù)庫(kù)的方法。

數(shù)據(jù)庫(kù)遭到意外損壞時(shí),應(yīng)該先使用最近的備份文件來(lái)還原數(shù)據(jù)庫(kù)。另外備份之后,數(shù)據(jù)庫(kù)可能進(jìn)行了一些更新,這時(shí)可以使用二進(jìn)制日志來(lái)還原。因?yàn)槎M(jìn)制日志中存儲(chǔ)了更新數(shù)據(jù)庫(kù)的語(yǔ)句,如 UPDATE 語(yǔ)句、INSERT 語(yǔ)句等。

二進(jìn)制日志還原數(shù)據(jù)庫(kù)的命令如下:

mysqlbinlog filename.number | mysql -u root -p

以上命令可以理解成,先使用 mysqlbinlog 命令來(lái)讀取 filename.number 中的內(nèi)容,再使用 mysql 命令將這些內(nèi)容還原到數(shù)據(jù)庫(kù)中。

技巧:二進(jìn)制日志雖然可以用來(lái)還原 MySQL 數(shù)據(jù)庫(kù),但是其占用的磁盤空間也是非常大的。因此,在備份 MySQL 數(shù)據(jù)庫(kù)之后,應(yīng)該刪除備份之前的二進(jìn)制日志。如果備份之后發(fā)生異常,造成數(shù)據(jù)庫(kù)的數(shù)據(jù)損失,可以通過(guò)備份之后的二進(jìn)制日志進(jìn)行還原。

使用 mysqlbinlog 命令進(jìn)行還原操作時(shí),必須是編號(hào)(number)小的先還原。例如,mylog.000001 必須在 mylog.000002 之前還原。

例 1

下面使用二進(jìn)制日志來(lái)還原數(shù)據(jù)庫(kù),代碼如下:

mysqlbinlog mylog.000001 | mysql -u root -p
mysqlbinlog mylog.000002 | mysql -u root -p
mysqlbinlog mylog.000003 | mysql -u root -p
mysqlbinlog mylog.000004 | mysql -u root -p

“mysql的日志文件是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

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

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

AI