新聞中心
本篇內(nèi)容介紹了“MySQL的日志文件是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、郴州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為郴州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
mysql有四種日志文件:1、二進(jìn)制日志文件,該日志文件會以二進(jìn)制的形式記錄數(shù)據(jù)庫的各種操作,但不記錄查詢語句;2、錯誤日志文件,主要記錄MySQL服務(wù)器啟動和停止過程中的信息、服務(wù)器在運行過程中發(fā)生的故障和異常情況等;3、通用查詢?nèi)罩疚募?,記錄服?wù)器的啟動和關(guān)閉信息、客戶端的連接信息、更新、查詢數(shù)據(jù)記錄的SQL語句等;4、慢查詢?nèi)罩疚募饕涗泩?zhí)行事件超過指定時間的操作。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
日志是數(shù)據(jù)庫的重要組成部分,主要用來記錄數(shù)據(jù)庫的運行情況、日常操作和錯誤信息。
在MySQL 中 ,日志文件可以分為4 種:二進(jìn)制日志文件、錯誤日志文件、通用查詢?nèi)罩疚募吐樵內(nèi)罩疚募?/strong>
二進(jìn)制日志文件:該日志文件會以二進(jìn)制的形式記錄數(shù)據(jù)庫的各種操作,但不記錄查詢語句。主要用于記錄數(shù)據(jù)庫的變化情況,即 SQL 語句的 DDL 和 DML 語句,不包含數(shù)據(jù)記錄查詢操作。
錯誤日志文件:主要記錄 MySQL 服務(wù)器啟動和停止過程中的信息、服務(wù)器在運行過程中發(fā)生的故障和異常情況等。
通用查詢?nèi)罩疚募涸撊罩居涗?MySQL 服務(wù)器的啟動和關(guān)閉信息、客戶端的連接信息、更新、查詢數(shù)據(jù)記錄的 SQL 語句等。
慢查詢?nèi)罩疚募河涗泩?zhí)行事件超過指定時間的操作,通過工具分析慢查詢?nèi)罩究梢远ㄎ?MySQL 服務(wù)器性能瓶頸所在。
在 MySQL 所支持的日志文件里,除了二進(jìn)制日志文件外,其它日志文件都是文本文件。默認(rèn)情況下,MySQL 只會啟動錯誤日志文件,而其它日志則需要手動啟動。
使用日志有優(yōu)點也有缺點。啟動日志后,雖然可以對 MySQL 服務(wù)器性能進(jìn)行維護,但是會降低 MySQL 的執(zhí)行速度。例如,一個查詢操作比較頻繁的 MySQL 中,記錄通用查詢?nèi)罩竞吐樵內(nèi)罩疽ㄙM很多的時間。
日志文件還會占用大量的硬盤空間。對于用戶量非常大、操作非常頻繁的數(shù)據(jù)庫,日志文件需要的存儲空間甚至比數(shù)據(jù)庫文件需要的存儲空間還要大。因此,是否啟動日志,啟動什么類型的日志要根據(jù)具體的應(yīng)用來決定。
擴展知識:MySQL使用二進(jìn)制日志還原數(shù)據(jù)庫
二進(jìn)制日志中記錄了用戶對數(shù)據(jù)庫更改的所有操作,如 INSERT 語句、UPDATE 語句、CREATE 語句等。如果數(shù)據(jù)庫因為操作不當(dāng)或其它原因丟失了數(shù)據(jù),可以通過二進(jìn)制日志來查看在一定時間段內(nèi)用戶的操作,結(jié)合數(shù)據(jù)庫備份來還原數(shù)據(jù)庫。
下面將詳細(xì)介紹使用二進(jìn)制日志還原數(shù)據(jù)庫的方法。
數(shù)據(jù)庫遭到意外損壞時,應(yīng)該先使用最近的備份文件來還原數(shù)據(jù)庫。另外備份之后,數(shù)據(jù)庫可能進(jìn)行了一些更新,這時可以使用二進(jìn)制日志來還原。因為二進(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)行還原操作時,必須是編號(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
“mysql的日志文件是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
當(dāng)前名稱:mysql的日志文件是什么
路徑分享:http://www.dlmjj.cn/article/jggpoc.html