背景:测试同事的存储过程,发现其错误日志有 :
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。
重启,成功。
测试存储过程,成功。