1、【錯(cuò)誤日志?Error?Log】---記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的問(wèn)題
可以用--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ì)重新命名)。
2、【慢日志Slow?Log】---記錄所有執(zhí)行時(shí)間超過(guò)long_query_time秒的所有查詢(xún)或不使用索引的查詢(xún),mysql5.1版本之后可動(dòng)態(tài)開(kāi)啟和關(guān)閉記錄
用--log-slow-queries[=file_name]選項(xiàng)啟動(dòng)時(shí),mysqld寫(xiě)一個(gè)包含所有執(zhí)行時(shí)間超過(guò)long_query_time秒的SQL語(yǔ)句的日志文件。獲得初使表鎖定的時(shí)間不算作執(zhí)行時(shí)間。如果沒(méi)有給出file_name值,?默認(rèn)未主機(jī)名,后綴為-slow.log。如果給出了文件名,但不是絕對(duì)路徑名,文件則寫(xiě)入數(shù)據(jù)目錄。語(yǔ)句執(zhí)行完并且所有鎖釋放后記入慢查詢(xún)?nèi)罩?,記錄順序可以與執(zhí)行順序不相同。
慢查詢(xún)?nèi)罩究梢杂脕?lái)找到執(zhí)行時(shí)間長(zhǎng)的查詢(xún),可以用于優(yōu)化。但是,檢查又長(zhǎng)又慢的查詢(xún)?nèi)罩緯?huì)很困難。要想容易些,你可以使用mysqldumpslow命令獲得日志中顯示的查詢(xún)摘要來(lái)處理慢查詢(xún)?nèi)罩尽?
影響慢查日志記錄的設(shè)置有:
log-slow-admin-statements?-----慢管理語(yǔ)句,例如OPTIMIZE?TABLE、ANALYZE?TABLE和?ALTER?TABLE寫(xiě)入慢查詢(xún)?nèi)罩尽?
log-queries-not-using-indexes
long_query_time?=?1
3、【通用查詢(xún)?nèi)罩綠eneral?Qurey?Log】---記錄建立的客戶(hù)端連接和執(zhí)行的所有語(yǔ)句,mysql5.1版本之后可動(dòng)態(tài)開(kāi)啟和關(guān)閉記錄
如果你想要知道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)你懷疑在客戶(hù)端發(fā)生了錯(cuò)誤并想確切地知道該客戶(hù)端發(fā)送給mysqld的語(yǔ)句時(shí),該日志可能非常有用。
mysqld按照它接收的順序記錄語(yǔ)句到查詢(xún)?nèi)罩?,這可能與執(zhí)行的順序不同。這與更新日志和二進(jìn)制日志不同,它們?cè)诓樵?xún)執(zhí)行后,但是任何一個(gè)鎖釋放之前記錄日志(查詢(xún)?nèi)罩具€包含所有語(yǔ)句,而二進(jìn)制日志不包含只查詢(xún)數(shù)據(jù)的語(yǔ)句)。
4、【二進(jìn)制日志?Binlog】---記錄所有更改數(shù)據(jù)的語(yǔ)句,還用于復(fù)制
二進(jìn)制日志包含了所有更新了數(shù)據(jù)或者已經(jīng)潛在更新了數(shù)據(jù)(例如,沒(méi)有匹配任何行的一個(gè)DELETE)的所有語(yǔ)句。語(yǔ)句以“事件”的形式保存,它描述數(shù)據(jù)更改。二進(jìn)制日志還包含關(guān)于每個(gè)更新數(shù)據(jù)庫(kù)的語(yǔ)句的執(zhí)行時(shí)間信息。
當(dāng)用--log-bin[=file_name]選項(xiàng)啟動(dòng)時(shí),mysqld寫(xiě)入包含所有更新數(shù)據(jù)的SQL命令的日志文件。如果未給出file_name值,?默認(rèn)名為-bin后面所跟的主機(jī)名。如果給出了文件名,但沒(méi)有包含路徑,則文件被寫(xiě)入數(shù)據(jù)目錄。建議指定一個(gè)文件名
如果你在日志名中提供了擴(kuò)展名(例如,--log-bin=file_name.extension),則擴(kuò)展名被悄悄除掉并忽略。mysqld在每個(gè)二進(jìn)制日志名后面添加一個(gè)數(shù)字?jǐn)U展名。每次你啟動(dòng)服務(wù)器或刷新日志時(shí)該數(shù)字則增加。如果當(dāng)前的日志大小達(dá)到max_binlog_size,還會(huì)自動(dòng)創(chuàng)建新的二進(jìn)制日志。如果你正使用大的事務(wù),二進(jìn)制日志還會(huì)超過(guò)max_binlog_size:事務(wù)全寫(xiě)入一個(gè)二進(jìn)制日志中,絕對(duì)不要寫(xiě)入不同的二進(jìn)制日志中。
為了能夠知道還使用了哪個(gè)不同的二進(jìn)制日志文件,mysqld還創(chuàng)建一個(gè)二進(jìn)制日志索引文件,包含所有使用的二進(jìn)制日志文件的文件名。默認(rèn)情況下與二進(jìn)制日志文件的文件名相同,擴(kuò)展名為'.index'。你可以用--log-bin-index[=file_name]選項(xiàng)更改二進(jìn)制日志索引文件的文件名。當(dāng)mysqld在運(yùn)行時(shí),不應(yīng)手動(dòng)編輯該文件;如果這樣做將會(huì)使mysqld變得混亂。
可以用RESET?MASTER語(yǔ)句刪除所有二進(jìn)制日志文件,或用PURGE?MASTER?LOGS只刪除部分二進(jìn)制文件。
使用mysql的主備復(fù)制時(shí),與主庫(kù)的binlog對(duì)應(yīng)的備庫(kù)上還會(huì)生成
中繼日志文件relay_log[=file_name]、
中繼日志索引文件relay-log-index?[=file_name]?????????????????
當(dāng)前主庫(kù)的binlog位置信息文件:master-info-file[=file_name]????????????????????????????????
當(dāng)前備庫(kù)上執(zhí)行到的中繼日志位置信息文件:relay-log-info-file[=file_name]???
注:有了二進(jìn)制日志和中繼日志之后,備庫(kù)開(kāi)啟log-slave-updates?=?1??才能搭建M-M架構(gòu)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
