背景:測試同事的存儲過程,發現其錯誤日誌有 :
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。
重啓,成功。
測試存儲過程,成功。