错误代码:2,WordPress无法创建/写入文件

时间:2013-12-13 12:09:37

标签: mysql fedora sysadmin

所以我基本上到处都问过(包括这里),但我会再试一次,因为没有人似乎想要帮助,我很绝望。

[Fri Dec 13 06:52:28.286593 2013] [:error] [pid 13101] [client 124.169.101.176:62647] WordPress database error Can't create/write to file '/var/tmp/#sql_1ff_0.MAI' (Errcode: 2) for query SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('post_tag') ORDER BY t.name ASC LIMIT 50 made by do_accordion_sections, call_user_func, wp_nav_menu_item_taxonomy_meta_box, get_terms, referer: http://wardport.com/wordpress/wp-admin/nav-menus.php

从中可以看出^我得到的是errcode 2,perror 2表示“没有这样的文件或目录”。大多数消息来源告诉我a)目录中没有空间可以工作(它实际上是完全空的!​​)或b)mysql没有权限写入所说的目录(/ var / tmp /)它(绝望的尝试http://puu.sh/5LeRg.png)。

我的服务器到底有什么不对,这太令人沮丧了

3 个答案:

答案 0 :(得分:0)

您无法创建的此文件似乎是临时表的AriaDB容器文件。你在运行MariaDB吗?如果是这样,什么版本?

此查询的临时文件并不奇怪。

你的mysqld在某种程度上是错误配置的,或者运行它的服务器配置错误。

您是否可以访问简单的(非WordPress)mysql客户端?如果是这样,请尝试相同的查询,以排除整个WordPress / PHP基础结构作为问题的原因。如果该查询失败,请尝试更简单的查询

  SELECT COUNT(*) FROM wp_posts

这个可能不会失败,因为它不需要创建然后对临时表进行排序。重点是获得一个失败的简单测试用例。不要过度思考这个问题,只是让自己找一个失败的简单查询。

这是你自己的服务器吗?如果是这样,您应该能够找到mysqld进程的错误日志。它可能是一个名称以MySQL数据目录中的.err位置结尾的文件。尾巴(看看最后几百行),看看mysqld是否更详细地解释了什么是错的。运行简单的失败测试用例查询并再次查看。

/ var / tmp应该可由系统上的每个用户写入; *如果不是,nix就会陷入堆中。它也应该有足够的空间。

FWIW,这不是一个编程问题(除非你正在研究你正在使用的MySQL版本的内部)。这是一个系统管理员的问题。

答案 1 :(得分:0)

MariaDB正在尝试创建临时表,同时执行SELECT以进行排序。

我想知道你是否将MySQL变量tmpdir更改为/tmp

mysql> SHOW VARIABLES like '%tmp%';
+-------------------+-----------------+
| Variable_name     | Value           |
+-------------------+-----------------+
...
| tmpdir            | /var/tmp        | <= probably, current value is '/var/tmp'
+-------------------+-----------------+

[mysqld]
user    = ...
port    = ...
basedir = ...
datadir = ...
tmpdir  = /tmp  <= change here and restart MariaDB
...

更新

启动时,我不确定service mysqld restart是否具有功能更改选项。但是,mysql.server有这个。可能mysql.server/etc/rc.d/init.d/(假设是CentOS或Fedora)。你能试试吗?

$ ./mysql.server start --tmpdir=/tmp

我已经测试了自己的服务器。 tmpdir变好了。

答案 2 :(得分:0)

所以基本上我完全放弃了,彻底清理了我的服务器,卸载了MariaDB并删除了我的所有数据库(开始时并不多,虽然我确信它不会有受伤以支持他们并在以后恢复他们:P)。然后我重新启动了我的服务器,重新安装了MariaDB&amp;重新运行WordPress安装,并且一切正常。

可能只有这一过程的一个步骤解决了问题,E.G。我可能只需要重启我的服务器来解决问题。如果你有同样的错误,那就试试吧!

再次感谢大家的帮助。 :)