為什麼會出現mysql資料表寫不進去的錯誤訊息?

問題編號: 
Q12
A: 

若您的網頁出現類似以下的錯誤訊息

javax.servlet.ServletException: Can't create/write to file 'x:\\xxxxxx\Temp\#sql_xxx.MYI (Errcode: 17)
.....

可能是mySQL跟常駐型防毒軟體相衝的問題(目前發現容易發生此情形的防毒軟體會McAfee),防毒程式可能在檢查時會咬著.MYI檔,讓mySQL不能讀寫。

解決方法可以把讓目錄從防毒軟體的檢查清單移除(exclude),若該目錄是與其他程式共用,而不想完全把該目錄完全移離防毒軟體的監控,可把mysql的暫存目錄(temp)設定到別的目錄,跟其他程式使用的暫存區分開。

作法是修改my.ini檔,在〔mysqld〕那區加入:

tmpdir="C:/Program Files/MySQL/tmp/" 

把目錄改成想要的目錄,設定防毒軟體不檢查該目錄,重起mySQL即可。

問題類型: