MySQL error writing file 錯誤

    前一段時間在MySQL中歸檔整理歷史數據時發現有很多的SQL無法被執行,剛剛開始以爲時寫的SQL語句有問題,在把所有在執行的SQL拿出來看時發現語法並沒有錯,但是在INSERT語句執行時報錯:

1.png

而把INSERT語句LIMIT 1條插入是沒有問題的。初步估計是INSERT的事務過大,去查了下資料才知道原來MySQL在創建臨時表時缺省會將數據文件放在系統的/tmp目錄下如果系統的/tmp目錄空間不大就會無法創建臨時表,其中該路徑有MySQL的tmpdir參數控制,由於這個是歷史數據所以每個要插入的INSERT語句後都跟有SELECT大表必然會創建臨時表,但系統的/tmp目錄不夠,所以只能修改tmpdir,這個參數無法直接修改需要寫入配置文件重啓生效,在大空間的目錄下創建一個tmp文件夾修改權限(777)後給tmpdir使用

[mysqld]
tmpdir = /data/tmp

再重啓MySQL生效,這樣問題解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章