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