无法创建/写入文件“#sql_1fc7_3.MYD”(错误代码:17)
我该如何修复它?
答案1
错误 17 是“文件存在”。
查看是否还有其他东西打开了#sql_1fc7_3.MYD:
lsof | grep '#sql_1fc7_3.MYD'
如果没有,则移动它。我不确定是什么导致了这个问题,但有一个猜测是 MySQL 在某个时候崩溃了,结果没有清理名为 #sql_1fc7_3.MYD 的临时表文件。
答案2
Python 2.6 (r26:66714, Nov 3 2009, 17:33:38)
[GCC 4.4.1 20090725 (Red Hat 4.4.1-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import errno
>>> errno.errorcode[17]
'EEXIST'
>>>
您是否尝试在恢复后创建表或类似操作?您尝试执行哪些命令导致了该错误?
答案3
有几种可能性:
1)该文件已存在,源于先前尝试修复/修改表,但失败或仍在进行中(显示进程列表)
2)您的系统设置为将临时表写入 /tmp,而不是 chmod 1777(或 /var/tmp)
3)您的 mysql 数据库目录不属于运行 mysql 的进程(或者 mysqld 没有写入该数据库目录的权限)。
答案4
我已经多次看到过此错误。我不确定这是怎么发生的,但就我而言,这是由于数据库服务器上的 /tmp/ 目录突然变为只有 root 用户可写(如前一位回答者所建议的那样)造成的。我不知道为什么这种情况一直发生,但我通过“chmod 777 /tmp/”将其恢复,错误立即消失。