胜利之后的存档:惨痛的升级

【鸣谢】经过了三个夜晚的折腾,终于保住了这个博客以及所有的帖子!这说明,只要有理科生的实证精神以及文科生的浪漫情怀,没有什么是不能战胜的!

在此,特别鸣谢,为帮我解决这个技术问题而浮出水面、详细解答的同志们!感谢跟我一起叹息的伙伴们!也赞美那些在互联网上无私贡献解决方案的无名英雄!!

有我们在,冰雪会融化,朝霞会点燃,大山会挪移,世界会改变!

———————–不堪回首的分割线—————————

惨痛的升级

4:01 am Jul 31 2008

和菜头曾说Wordpress是个很烂的程序,我当时不信。在与这个软件浴血奋战三天之后,我终于彻底服了这厮。

一切源于手欠。我以前装的WP是2.5版,看到2.6出来,我忽然想何不升级一下玩玩。以往的经验告诉我,WP升级不是件难事。

然而这次悲剧发生了,当我一切安装好,准备登陆的时候,发现我被锁到了自己的BLOG外面。

只要我一输入密码,立即出现一排警告:

Warning: Invalid argument supplied for foreach() in /homepages/23/d208744272/htdocs/wp-

includes/capabilities.php on line 31

我找寻了网上所有中英文的解决办法,从数据库改成UFT-8,到修改DP.PHP文件中的那几行。一次次实验,一次次失败。换了别的文科生早崩溃了,幸好我是双核,还有一颗理科的CPU在运转。

我最后不得不采取最原始的最后一招。由于博客依然能够访问,就是无法登陆,我把自古以来我的所有文章全都拷贝到了写字板上。

然后,我毅然决然地放弃了原来的数据库,新建了一个空空的数据库。

重新安装WP2.5。

于是有了你看到的这个光溜溜的站。

我没有打败WP,但这个博客又活过来了。

以前的文章,我会逐渐手动贴上去,也不多,1500篇而已。

这件事给我一个深刻的教训:千万不要为新而求新,够用就好,不折腾就好。

我改悔了!

——————留言一句三冬暖的分割线————————-

“惨痛的升级”

1.
# adminon 31 Jul 2008 at 4:02 am edit this

回家了,睡觉了。妈的,我真被折腾死了。
2.
# wangchongon 31 Jul 2008 at 4:12 am edit this

http://www.puyuping.com/index.php/2008/07/21/wordpress-bugs/

http://www.51eo.com/index.php/wordpress-e5-af-86-e7-a0-81-e4-b8-a2-e5-a4-b1-e8-a7-a3-

e5-86-b3-e5-8a-9e-e6-b3-95.html

google到两篇文章
3.
# wangpeion 31 Jul 2008 at 4:16 am edit this

我不是密码丢了,是登陆密码之后,还是进不去,页面出现警告。

谢谢你的GOOGLE。
4.
# 老猫on 31 Jul 2008 at 4:43 am edit this

跟俺去年年底一样
http://myblog.old-cat.net/archives/4
5.
# alligatoron 31 Jul 2008 at 5:15 am edit this

你为什么不用数据库备份插件?!每周或每天自动备份送到你的邮箱。。。
6.
# alligatoron 31 Jul 2008 at 5:18 am edit this

对了,还要记得时常手动自ftp备份uploads这个文件夹,所有图片什么的都在里边!!!
7.
# Liangon 31 Jul 2008 at 5:28 am edit this

嗯,够用就好
8.
# williamlongon 31 Jul 2008 at 8:32 am edit this

可能是某些插件或模板不兼容导致的,你可以尝试删除所有插件和default意外的模板,然后看看能不能登陆进去。
9.
# 李普曼on 31 Jul 2008 at 8:32 am edit this

王佩,建议添加一个备份插件吧。每天自动备份一下,会在许多意外的时候有用的。
10.
# wangpeion 31 Jul 2008 at 8:56 am edit this

各位朋友:

白板报高位截肢之后,看到大家的留言,顿时热泪满肚腩。

你们说的办法,我都知道。可是,都怪我年幼无知之时,安装了一个叫counterize的访问统计插件,这玩意往数据库里狂写数据,最终导致我的SQL居然有20M之大。

结果就是Database Backup这个插件无法运行。不但如此,我从PHPMYADMIN里导出的SQL也无法导入回去。

所以,最后不得不出此狠招。
11.
# cube316on 31 Jul 2008 at 10:18 am edit this

这个双核CPU还真不错,可惜理科的那枚是386 :D

说几点我的理解:

1、从出错信息看,是foreach函数的参数有问题,造成这个的可能原因很多,但最大的可能性是参数为空,也就是取不到数据;背后的问题,可以再作思考。

2、phpMyAdmin备份失败不是因为数据太大,而是超时。这主要可能是受限于Apache和php(最大执行时间)的参数设定。貌似这些配置一般的主机商是不会让你修改的,所以等于没说。

3、如果新的WP使用了全新的数据库(原来的还在),而你又有主机的SSH权限,那么即使数据库信息过大,也可以登陆上去之后用mysqldump 命令直接导出。或者可以给服务商的技术支持发信,要求他们帮你备份这个数据库并导出,然后提供给你。有了这个备份数据,就什么都不怕了。

4、还有一种办法,虽然备份和后台都不能用,但phpmyadmin应该还能登陆。

找到那个插件对应的数据库表(查询插件的文档,询问作者,google。。。)

如果是它自己新建的就好办,直接在phpmyadmin里面执行一句sql:
truncate table `table_name`;
注意那个不是单引号,是大键盘数字键1旁边那个字符
如果是插入到wp本身的表中,可能需要做一些where判断,具体操作就要分析这个插件后再说了,对它不熟,无法再提供深入信息。

==================

个人感觉最稳妥的办法还是3,退而求其次的话就是4

一直是个潜水订阅者,今天看来可以说几句。

另外想说的是,很佩服你一篇篇文章拷贝粘贴下来的劲,你真打算再一篇篇贴回去么? :P
12.
# cube316on 31 Jul 2008 at 10:26 am edit this

忘记提了,还有一条,可以在步骤3之前一试:

就是月光提供的意见,你用ftp登录,然后把那个插件的程序文件删除,再尝试登录后台,该插件应该被自动disable了,运气好的话就能成功了。

前提,你原来的blog程序文件在一个独立的目录里头,数据库配置文件指向老的(出问题的)数据库。或者也可以把现在这个blog的数据库指向改动到旧的那个。
13.
# 鸦打on 31 Jul 2008 at 11:07 am edit this

1500篇日志不多,看来我900多篇日志也可以手动转移。
14.
# 阿炬on 31 Jul 2008 at 11:14 am edit this

有博客备份工具,可以将你站点的文章全部备份下来,包括图片,相当好用

http://blog_backup.pt42.cn/blog_backup_index.htm

备份下来后,数据在sqlite格式的数据库里,可以导入导出

可以省却手工拷贝

碰到如此大打击,希望您写博客的热情依然不减。因为我们喜欢看你写的文字。
15.
# yson 31 Jul 2008 at 11:39 am edit this

大哥,我说呢,怎么出现个“hello world”的日志。。。辛苦了。。
16.
# 空空on 31 Jul 2008 at 12:11 pm edit this

服了你,还理科CPU。哈哈,全粘到记事本上,再一条条核对日期,发布上去,好恐怖的工程。

丢掉旧日记,一切从hello world开始,也挺美好的。
17.
# terababyon 31 Jul 2008 at 1:15 pm edit this

这个问题我遇到过,和你一模一样,原因应该出在升级后密码被重新加密。
还好的是允许我直接从首页注册新用户。注册个新用户的密码和我原来的一模一样。
然后直接进行后台数据库,把老用户的密码改为新用户的(都是加过密的)。
然后一切OK。
18.
# kon 31 Jul 2008 at 2:24 pm edit this

用phpmyadmin把counterize相关的表和数据全部删掉呢?
19.
# 李普曼 » 手欠on 31 Jul 2008 at 7:54 pm edit this

[…] 王佩的白板报数天没有更新,在终于恢复更新后他总结了一下原因为自己手欠。原来想升级wordpress到2.6,结果不知道哪里的问题,虽有有密码的他依旧不能登录博客的后台,那种情形就好像说虽然你有了结婚证,你老婆就是不让你进房门一样难受。 […]
20.
# 老蒋on 31 Jul 2008 at 8:44 pm edit this

真惨痛。。。

Loading

Tags:

2 Responses to “胜利之后的存档:惨痛的升级”

  1. AW says:

    向你致敬!呸呸老师!

  2. 鸦打 says:

    “恭喜”二字,是最好的慰问。

Leave a Reply