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