處理一次 MYSQL 啓動異常 Error writing file '/tmp/MYYEBa32' (Errcode: 28 - No space left on device)

背景:測試同事的存儲過程,發現其錯誤日誌有 :

Error writing file '/tmp/MYQUn0a7' (Errcode: 28 - No space left on device)

判斷爲創建臨時文件時空間不夠。

從日誌上看臨時文件目錄爲:  /tmp

難道硬盤分區滿了。

df -h 一下,所在分區還有 4.7GB ,應該是夠了吧?

不過,既然出問題了。而且本來該分區也不應該放DB相關文件。所以決定修改下臨時目錄文件配置。

創建了合適的目錄。找到my.cnf,添加 tmpdir 屬性。重啓: /etc/init.d/mysql restart。

關閉成功,啓動失敗

Error writing file '/tmp/MYYEBa32' (Errcode: 28 - No space left on device)

??

網上查了下原因五花八門,只能具體原因具體分析。

在 datadir 即 數據文件目錄下。找到 XX.error 文件。其中發現一段 ERROR 日誌。有用的信息如下:

 Can't create/write to file '/MY_DATA_DIR/tmp/ibgkqhLU' (Errcode: 13 - Permission denied)

看來是在新的臨時文件目錄下寫文件失敗。權限不夠。

waite!我可是 sudo 過的!怎麼可能沒權限!

。。。

waite ! waite !mysql 運行時可是沒sudo的!

於是將該目錄 chown -R ... mysql。

重啓,成功。

測試存儲過程,成功。

 


 

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