首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 錯誤「Can't create/write to file C:\Windows\TEMP\#sql_xxx.MYI」完整排查與解決方案

     編輯:MySQL 資料庫相關知識

錯誤現象

Error: Can't create/write to file 'C:\Windows\TEMP\#sql_718_0.MYD' (Errcode: 17)

五大可能原因與對應解法

原因檢查/解決方法
1. TEMP 目錄權限不足確保 Users 群組對 C:\Windows\Temp 有讀寫權限
2. 磁碟空間不足清理 Temp 目錄或擴充磁碟
3. McAfee/防毒軟體攔截寫入將 Temp 目錄加入掃描排除清單
4. 防毒「寫入時掃描」阻擋關閉「掃描檔案 (寫入磁碟時)」或排除 MySQL 目錄
5. 殘留暫存檔鎖定手動刪除 #sql_*.MYD/.MYI 檔案

根治方案:修改 MySQL 暫存目錄 (推薦)

  1. 建立專用目錄:D:\mysqltmp\temp\ (確保權限)
  2. 編輯 my.ini,在 [mysqld] 區段新增:
    tmpdir="D:/mysqltmp/temp/"
  3. 重啟 MySQL 服務生效
  4. 若裝有 McAfee:
    控制台 → 即時掃描 → 屬性 → 所有進程 → 偵測項 → 排除項 → 新增 D:\mysqltmp\temp,勾選「讀取時/寫入時」

原理說明

  • 大型查詢 (排序、分組、臨時表) 需寫入暫存檔
  • 預設 tmpdir 指向系統 Temp,易受權限/防毒/空間限制
  • 獨立目錄隔離風險,便於權限管理與防毒排除

Linux 環境同理

[mysqld]
tmpdir = /data/mysqltmp  # 掛載大磁碟、設定權限 mysql:mysql
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved