在 Drupal 7 中删除未经批准的评论
我最近受到了垃圾邮件攻击,这给了我一些需要解决的问题。在24小时内,我的博客收到了50,000多条评论,所有这些评论都毫无用处。好处是我的小型VPS服务器设法在大多数攻击中保持可用。
由于大量的评论,Drupal中的正常管理形式变得有点无用。我一次只能删除25条评论,所以在一个小时后我决定我需要运行一些SQL语句来清除数据库中所有不需要的评论。我想我会写下我在帖子中使用的命令。
首先要做的是从评论表中删除任何未经批准的评论。
DELETEFROMcommentWHEREstatus=0;
接下来,field_data_comment_body表中的评论正文字段也需要删除。这是通过交叉引用评论表中任何缺失的评论来完成的。
DELETE field_data_comment_body FROM field_data_comment_body LEFT JOIN comment ON field_data_comment_body.entity_id = comment.cid WHEREcomment.cidIS NULL;
评论也有修改,同样需要删除。
DELETE field_revision_comment_body FROM field_revision_comment_body LEFT JOIN comment ON field_revision_comment_body.entity_id = comment.cid WHEREcomment.cidIS NULL;
我应该在此注意,如果您在家中执行此操作并且您已将任何其他字段添加到您的评论中,那么您也必须注意这些表格。
最后,如果您安装了Mollom,那么您还可以截断Mollom日志表。这可能充满了您刚刚删除的评论中的日志记录。
TRUNCATETABLEmollom;
顺便说一句,根据Mollom报告,我在周末收到的垃圾邮件数量会接近300,000条评论。所以多亏了Mollom,情况可能会更糟。