wordpress的mysql大小超限

使用DNSPOD的D监控,偶尔出现主机连不上的情况,我想当然的以为是主机不稳定,毕竟是免费使用朋友的主机,直到前两天超过1天多了才发现不大对劲。

检查问题

  • 连上网站,发现503错误。ping 主机能通。
  • 主机管理界面(主机用的是kangle.pw),能够正常登陆,登进去就看到了大大的叹号,数据库超限。

由于是合租VPS,租用的虚拟空间,故肯定有一定的限制,包括空间大小、数据库大小、流量限制等等。

我这里的数据库限制为300M,一个博客空间竟然超过300M,显然是有问题。

解决问题

使用主机管理界面的“数据库管理”,进入PhpMyAdmin,查看各个表的空间大小,发现wp_commentswp_commentmeta的大小都100M+,明显是垃圾评论太多了。

wp_comments:存储评论的表

wp_commentmeta:存储评论属性,支持扩展评论功能的表

 

+─────────────+───────────────+────────────────────+
| 字段名 | 类型 | 注释 |
+─────────────+───────────────+────────────────────+
| meta_id | bigint(20) | wp_commentmeta表ID |
| comment_id | bigint(20) | 对应wp_comments表中的id |
| meta_key | varchar(255) | 存储键名 |
| meta_value | longtext | 存储键值 |
+─────────────+───────────────+────────────────────+

我查了下我这个表,基本上都是akismet插件生成的。

执行语句

1
2
3
4
5
6
7
8
9
10
11
-- 删除垃圾评论
-- spam 垃圾评论;0 待审核的评论,1  已审核的评论
DELETE FROM wp_comments WHERE comment_approved = 'spam';
--如果想删除待审核的评论
DELETE FROM wp_comments WHERE comment_approved = '0';
--优化表
OPTIMIZE TABLE wp_comments;
 
--删除评论属性表
TRUNCATE TABLE `wp_commentmeta`;
--一般来说直接删掉这个表就可以了,如果你使用了commentmeta存储信息请谨慎执行此句。

 

修改网站状态

执行完成后,数据库大小从300M直接到了15M。效果显著。但是这个时候网站的状态还是不对,还是打开不了,后用管理员账号进入管理员界面,把我的网站的状态从“数据库”超限改为“正常”。

Perfect!大功告成!

思考

  • 如果D监控经常性出现报警,可能不是机器挂了,可能是网站有问题,需要ping看下,或者及时检查网站后台。
  • 使用WP-Optimize插件,指定计划任务,每周清理垃圾评论、优化数据库表等。
  • 关闭早期文章评论,减少垃圾评论的数据和入口。

>> 若为原创,转载请注明: 转载自Laycher's Blog

>> 本文链接地址: wordpress的mysql大小超限

>> 订阅本站: http://feed.feedsky.com/laycher