日志文件類(lèi)型
MySQL有幾個(gè)不同的日志文件,可以幫助你找出mysqld內(nèi)部發(fā)生的事情:
| 日志文件 | 記入文件中的信息類(lèi)型 |
| 錯(cuò)誤日志 | 記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的問(wèn)題。 |
| 查詢?nèi)罩?/p> | 記錄建立的客戶端連接和執(zhí)行的語(yǔ)句。 |
| 更新日志 | 記錄更改數(shù)據(jù)的語(yǔ)句。不贊成使用該日志。 |
| 二進(jìn)制日志 | 記錄所有更改數(shù)據(jù)的語(yǔ)句。還用于復(fù)制。 |
| 慢日志 | 記錄所有執(zhí)行時(shí)間超過(guò)long_query_time秒的所有查詢或不使用索引的查詢。 |
默認(rèn)情況下,所有日志創(chuàng)建于mysqld數(shù)據(jù)目錄中。通過(guò)刷新日志,你可以強(qiáng)制 mysqld來(lái)關(guān)閉和重新打開(kāi)日志文件(或者在某些情況下切換到一個(gè)新的日志)。當(dāng)你執(zhí)行一個(gè)FLUSH LOGS語(yǔ)句或執(zhí)行mysqladmin flush-logs或mysqladmin refresh時(shí),出現(xiàn)日志刷新。
錯(cuò)誤日志
錯(cuò)誤日志文件包含了當(dāng)mysqld啟動(dòng)和停止時(shí),以及服務(wù)器在運(yùn)行過(guò)程中發(fā)生任何嚴(yán)重錯(cuò)誤時(shí)的相關(guān)信息。
如果mysqld莫名其妙地死掉并且mysqld_safe需要重新啟動(dòng)它,mysqld_safe在錯(cuò)誤日志中寫(xiě)入一條restarted mysqld消息。如果mysqld注意到需要自動(dòng)檢查或著修復(fù)一個(gè)表,則錯(cuò)誤日志中寫(xiě)入一條消息。
在一些操作系統(tǒng)中,如果mysqld死掉,錯(cuò)誤日志包含堆棧跟蹤信息。跟蹤信息可以用來(lái)確定mysqld死掉的地方。
可以用--log-error[=file_name]選項(xiàng)來(lái)指定mysqld保存錯(cuò)誤日志文件的位置。如果沒(méi)有給定file_name值,mysqld使用錯(cuò)誤日志名host_name.err 并在數(shù)據(jù)目錄中寫(xiě)入日志文件。如果你執(zhí)行FLUSH LOGS,錯(cuò)誤日志用-old重新命名后綴并且mysqld創(chuàng)建一個(gè)新的空日志文件。(如果未給出--log-error選項(xiàng),則不會(huì)重新命名)。
如果不指定--log-error,或者(在Windows中)如果你使用--console選項(xiàng),錯(cuò)誤被寫(xiě)入標(biāo)準(zhǔn)錯(cuò)誤輸出stderr。通常標(biāo)準(zhǔn)輸出為你的終端。
通用查詢?nèi)罩?/p>
如果你想要知道m(xù)ysqld內(nèi)部發(fā)生了什么,你應(yīng)該用--log[=file_name]或-l [file_name]選項(xiàng)啟動(dòng)它。如果沒(méi)有給定file_name的值, 默認(rèn)名是host_name.log。所有連接和語(yǔ)句被記錄到日志文件。當(dāng)你懷疑在客戶端發(fā)生了錯(cuò)誤并想確切地知道該客戶端發(fā)送給mysqld的語(yǔ)句時(shí),該日志可能非常有用。
mysqld按照它接收的順序記錄語(yǔ)句到查詢?nèi)罩尽_@可能與執(zhí)行的順序不同。這與更新日志和二進(jìn)制日志不同,它們?cè)诓樵儓?zhí)行后,但是任何一個(gè)鎖釋放之前記錄日志。(查詢?nèi)罩具€包含所有語(yǔ)句,而二進(jìn)制日志不包含只查詢數(shù)據(jù)的語(yǔ)句)。
新聞熱點(diǎn)
疑難解答
圖片精選