我安装了Visitor模块Drupal 7.我使用www.domain.com/visitors查看了报告。所有报告都运作良好。但是当我查看用户活动报告时,它会显示以下错误。
PDOException:SQLSTATE [HY000]:常规错误:3写入文件时出错 ' / TMP / MYHKgYpv' (错误代码:28):SELECT u.name AS name,u.uid AS uid, COUNT(DISTINCT v.visitors_id)AS命中,COUNT(DISTINCT n.nid)AS节点, COUNT(DISTINCT c.cid)AS评论来自{users} u LEFT OUTER JOIN {visitor} v ON u.uid = v.visitors_uid LEFT OUTER JOIN {node} n ON u.uid = n.uid LEFT OUTER JOIN {comment} c ON u.uid = c.uid WHERE (visitor_date_time BETWEEN:db_condition_placeholder_0 AND :db_condition_placeholder_1)GROUP BY u.name,u.uid,v.visitors_uid, n.uid,c.uid ORDER BY点击DESC LIMIT 10 OFFSET 0;阵列( [:db_condition_placeholder_0] => 1451606400 [:db_condition_placeholder_1] => 1452556799)in PagerDefault-> execute()(第79行) /home/legalmon/public_html/includes/pager.inc)。
我该如何解决这个问题?
答案 0 :(得分:2)
您应该在触发" USER REPORT Query"时连续检查您的/ tmp文件夹大小。
如果/ tmp目录100%被利用,您将遇到此错误。
解决方法是将一些GB安装到/ tmp目录或设置MySQL tmp的新位置。
设置新位置:
在任何有足够空间的地方创建目录(可以是" /"根目录)
授予写入权限
打开MY.CNF文件
在[mysqld]部分下添加以下行并保存文件
重启MySQL
检查新位置
这应该在返回后显示。
| slave_load_tmpdir | /家/ mysqltmp | tmpdir | /家庭/ mysqltmp
完成!!
尝试刷新页面。
答案 1 :(得分:1)
首先,检查df -h
是否存储设备几乎已满,如果是这种情况,那么您需要释放一些空间。
删除旧数据库可能是解决方案,但如果您在清除后没有看到可用空间发生变化,则需要执行以下操作:
某些MySQL配置存在一个常见问题,即所有数据库都存储在名为ibdata1
的单个文件中。发生的情况是,当您删除旧数据库时,此文件不会自动缩小。
检查/var/lib/mysql/
中文件的大小,如果在删除某些旧数据库后发现ibdata1
大小没有变化,则需要进行一些清理。
步骤:
rm /var/lib/mysql/ibdata1
rm /var/lib/mysql/ib_logfile*
service mysql restart
现在,/tmp
应该有足够的空间来增长和执行您的查询!
备注:强>
有关清除的详细信息,请访问John P的答案:https://stackoverflow.com/a/3456885/2188595