无法创建/写入文件“/tmp/#sql_xxxx.MYI”(错误代码:13)

Cud*_*dos 10 mysql debian

我已经安装了 Debian Lenny、PHPmyadmin 和 postfix。

当使用 PHPmyadmin GUI 并访问任何包含数据的表时,我得到:

无法创建/写入文件“/tmp/#sql_xxxx.MYI”(错误代码:13)

做 perror 13 说:

OS error code  13:  Permission denied
Run Code Online (Sandbox Code Playgroud)

我发现 tmpdir 喜欢这样:

mysqladmin -p variables | grep -w tmpdir
| tmpdir                          | /tmp
Run Code Online (Sandbox Code Playgroud)

现在这意味着 mysql 无法写入 /tmp。将权限设置为 :777 可以解决这个问题。但我觉得不对,我必须这样做。有没有更好的方法/修复?

我应该更改 tmpdir 中的值/etc/mysql/my.cnf吗?

Roy*_*Roy 22

看起来您对 /tmp 的权限是错误的。对于设置了粘性位的每个人,它们确实应该被读/写/执行。

chmod 1777 /tmp
Run Code Online (Sandbox Code Playgroud)

粘滞位对其他用户如何与非他们创建或拥有的文件进行交互添加了一些限制,因此无需担心。

如果您愿意,您还可以创建一个由 mysql 用户拥有和可写的单独目录,并在 my.cnf 中指定要使用的目录,而不是系统范围的 /tmp。