mysql的日志文件是哪個(gè)

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

mysql的日志文件是哪個(gè)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mysqlbinlog?filename.number?|?mysql?-u?root?-p

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

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

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

例 1

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

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

【相關(guān)推薦:mysql視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享