升级完成了,似乎没出现什么问题,如果发现问题这几天再修复。

一些无聊的家伙利用wordpress漏洞大量注册一些空的用户,导致mysql内充满了垃圾,并且由于mysql的垃圾表太多导致一些wordpress操作失败,出现某些错误,例如回复的时候变成了白屏,我用live writer发表的时候xmlrpc出错等。

要清理数据发现wpmu的数据库做法是每个用户创建一堆表,删除很不方便,只好通过脚本来清理那几千个垃圾用户的表。 wpmu的这个设计我很不欣赏。

参考了月光的脚本:http://www.williamlong.info/archives/1215.html 我简化修改为了以下的代码,注意我是硬编码的,我事先查询了wp_blogs表,决定删除blog_id从86到2149的表。月光的代码更通用些,但查询数据库太多,我的mysql上运行很慢还出错。

<?php
for ($blogid = 86; $blogid < 2150; $blogid++) {
print “DROP TABLE IF EXISTS wp_”.$blogid.”_comments;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_links ;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_options ;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_postmeta ;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_posts ;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_terms ;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_term_relationships ;”;
print “DROP TABLE IF EXISTS wp_”.$blogid.”_term_taxonomy ;”;
} ?>

这个脚本产生mysql 脚本(e.g.  php delwptable.php > deltabs.sql),用mysql的source 命令执行产生的脚本可以删除那些垃圾表。当然最后还得手工删除主表中的垃圾数据。

升级参考了我自己过去升级到1.3的办法:

http://dev.robertmao.com/2007/12/25/upgrade-wpmu-to-version-13/

和这篇:

http://ocaoimh.ie/2008/05/12/wordpress-mu-151/

注意要在wp-config.php中添加两行新的东西,如果不添加在登陆到wp-admin的时候会给出警告。

define(’SECRET_KEY’, ‘r5bWN)@4vHTAIHsyqzUDsI^n’);
define(’SECRET_SALT’, ‘NZxMyH@56M%WxpTfdhA4C7KO’);

用livewriter发表文章的时候报告一个错误,还需要研究怎么回事。



11 Comments to “升级完成wordpress到wpmu 1.5.1, 删除spam用户”

  1. Robert | July 15th, 2008 at 12:38 am

    安装了wp super cache, 看看效果…

  2. penddy | July 15th, 2008 at 1:02 am

    原来你的站用的是wpmu啊?wpmu不是需要额外交费才可以使用的么?
    另外,wpmu主要是使用多用户的,个人博客使用此软件的原因是什么呢?(猜测是因为你个人维护了多个博客)

  3. penddy | July 15th, 2008 at 1:04 am

    回复确实很慢,而且不知是否是采用了本地失去,我回复时已经有3个回复,但是我的回复插入在中间

  4. Robert | July 15th, 2008 at 8:00 am

    测试一下回复

  5. Robert | July 15th, 2008 at 8:02 am

    貌似正常,但还是很慢… :(

  6. Mao | July 15th, 2008 at 10:34 am

    回复是正常了…但是很慢!!!!!!!

  7. robert mao | July 15th, 2008 at 10:39 am

    还有待调整…

  8. Fenng | July 16th, 2008 at 2:52 pm

    你不是要优化 MySQL 么?

    怎么看不到那个帖子了?

  9. Robert | July 16th, 2008 at 2:58 pm

    某个怪异的原因导致那篇帖子成了unpublished. :(

  10. Mao | July 24th, 2008 at 7:09 pm

    请教几个问题…
    1.你用WP MU..如果博客要绑定顶级域名..你用什么插件?
    前提是不是一定要独立IP?
    2.直接将域名A记录解析到服务器IP就可以了?

  11. Robert Mao | July 24th, 2008 at 9:52 pm

    @Mao, 参考我另外一个blog的这篇文章:

    http://dev.robertmao.com/2007/06/28/enable-top-domains-support-for-individual-wordpress-multiuser-blogs/

Leave a Comment

Close
E-mail It