Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′
這兩天在使用MySQL做點(diǎn)東西,可是從前天開(kāi)始,系統(tǒng)啟動(dòng)時(shí)經(jīng)常出現(xiàn)類似Can’t create/write to file ‘c:\temp/#sql-XXX.MYI′ (Errcode: 13)"的錯(cuò)誤,我以為可能是我的系統(tǒng)的問(wèn)題,于是重啟應(yīng)用和MySQL,該問(wèn)題還是陸陸續(xù)續(xù)會(huì)出現(xiàn),但又不是始終出現(xiàn)。我注意到該問(wèn)題一般都在查詢數(shù)據(jù)量比較大的時(shí)候才出現(xiàn),我想應(yīng)該是在做大數(shù)據(jù)量的數(shù)據(jù)庫(kù)操作,MySQL想往temp目錄寫(xiě)臨時(shí)文件時(shí),則于某種原因無(wú)法寫(xiě)入導(dǎo)致了該問(wèn)題,于我,我嘗試著著按以下步驟進(jìn)行分析處理。
一、這可能是MySQL以前生成的臨時(shí)文件還存在,但具有只讀屬性導(dǎo)致無(wú)法寫(xiě)入。我仔細(xì)查看temp目錄,卻沒(méi)有找到擴(kuò)展名為“MYI”的文件,于是把臨時(shí)目錄下的所有文件都刪除。重新啟動(dòng)MySQL和應(yīng)用系統(tǒng),但問(wèn)題還是會(huì)出現(xiàn);
二、我懷疑是不是temp目錄具有只讀屬性或?qū)ySQL用戶禁止寫(xiě)入,但我的在WindowsXP上,而且臨時(shí)目錄里會(huì)有別的系統(tǒng)產(chǎn)生的臨時(shí)文件,說(shuō)明該目錄是可以讀寫(xiě)的,而且我啟動(dòng)MySQL用的是超級(jí)用戶,所以不存在目錄無(wú)寫(xiě)權(quán)限的問(wèn)題;
三、會(huì)不會(huì)是殺毒軟件的實(shí)時(shí)文件保護(hù)導(dǎo)致無(wú)法寫(xiě)臨時(shí)文件呢?因?yàn)槲业臍④浀牟《編?kù)是天天升級(jí)的,前幾天也系統(tǒng)沒(méi)出現(xiàn)過(guò)該問(wèn)題,而這幾天可以,是不是我升級(jí)了病毒庫(kù)后,殺軟阻止了MySQL產(chǎn)生臨時(shí)文件呢?我在殺軟中把temp目錄設(shè)為不檢測(cè),再重啟MySQL和應(yīng)用,再看著temp目錄,里面會(huì)出現(xiàn)#sql-XXX.MYI或#sql-XXX.MYD等臨時(shí)文件,應(yīng)用系統(tǒng)啟動(dòng)正常。看來(lái)問(wèn)題就出在殺軟禁止MySQL產(chǎn)生“MYI”或“MYD”臨時(shí)文件導(dǎo)致了該問(wèn)題。
至此,我以為問(wèn)題就這樣解決了,可是在接下來(lái)的一次啟動(dòng)中,我看到臨時(shí)文件產(chǎn)生了,我就在臨時(shí)文件#sql-XXX.MYI上點(diǎn)右鍵,想看看文件屬性,這一點(diǎn)可好,應(yīng)用系統(tǒng)又出現(xiàn)了原來(lái)的錯(cuò)誤,咋回事?我再次停掉應(yīng)用然后重啟,重啟過(guò)程中不對(duì)臨時(shí)文件作任何操作,應(yīng)用啟動(dòng)都正常。這是為什么呢?
我分析原因可能是這樣的:MySQL產(chǎn)生的臨時(shí)文件存在時(shí)間很短,MySQL在產(chǎn)生臨時(shí)文件后需要馬上使用馬上刪除,這時(shí)候如果有另外一個(gè)軟件對(duì)這些臨時(shí)文件進(jìn)行訪問(wèn)或操作的話,MySQL就無(wú)法及時(shí)獲得文件訪問(wèn)權(quán)限,就拋出錯(cuò)誤。殺軟由于啟用了文件保護(hù)功能,當(dāng)MySQL產(chǎn)生臨時(shí)文件后,即鎖定文件進(jìn)行病毒檢測(cè),導(dǎo)致了MySQL自己不能馬上操作這些文件從而拋出錯(cuò)誤,同樣的,當(dāng)我試圖查看文件屬性時(shí),操作系統(tǒng)對(duì)文件也進(jìn)行了短時(shí)間的鎖定,而這一鎖定導(dǎo)致MySQL自己無(wú)法操作,所以也拋出這個(gè)錯(cuò)誤來(lái)。
現(xiàn)在這個(gè)問(wèn)題貌似已經(jīng)解決,但是否真的已解決還有待接下來(lái)幾天觀察,我的分析是不是正確也有待歷史來(lái)作出裁定,呵呵。
另外,我也在網(wǎng)上搜了一把,發(fā)現(xiàn)很多人也遇到這個(gè)問(wèn)題,但多數(shù)人都認(rèn)為是目錄沒(méi)有寫(xiě)權(quán)限而導(dǎo)致,也有部分人知道是殺軟導(dǎo)致的這個(gè)問(wèn)題,卻沒(méi)有深入的分析其原因,我就當(dāng)給有相同遭遇的弟兄拋個(gè)磚吧。
關(guān)鍵詞:MySQL
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 0
- 0
- 0
- 0
- 0
- 0