所以我基本上到处都问过(包括这里),但我会再试一次,因为没有人似乎想要帮助,我很绝望。
[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)。
我的服务器到底有什么不对,这太令人沮丧了
答案 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。我可能只需要重启我的服务器来解决问题。如果你有同样的错误,那就试试吧!
再次感谢大家的帮助。 :)