Discuz论坛X2升级到X2.5陷入死循环解决办法
来源:本站    日期:2015-11-4 21:10:22

昨天把我的一个dz论坛从X2升级到X2.5出现了问题,升级陷入死循环,具体提示如下:

死循环

update.php?step=waitingdb&nextstep=prepare&sql[]=5786554789722f09b8f635c20410e507&sql[]=[ee4f20b8582052367f5beb9bd19fea58]正在升级数据,请稍后。。。

[时长]:113[状态]:copy to tmp table[信息]:ALTER TABLE pre_forum_post ORDER BY pid ASC

[时长]:113[状态]:Locked[信息]:ALTER TABLE pre_forum_post CHANGE `pid` `pid` INT(10) UNSIGNED NOT NULL, CHANGE `replycredit` `replycredit` int(10) NOT NULL default '0', CHANGE `status` `status` int(10) NOT NULL default '0', ADD UNIQUE KEY pid (pid), DROP PRIMARY KEY, ADD `position` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(`tid`, `position`), DROP INDEX authorid, ADD INDEX authorid (authorid,invisible)

(跳转中。。。)

去DZ官方论坛查找,发现好多人都遇到这个问题,官方也没有给予解决。由于以前经常升级DZ所以这次没在意,也没有备份数据库。现在是返回X2也返回不了了,只能想办法升级到X2.5 。于是仔细分析了一下SQL语句,发现升级post数据时便无法前进,原来原因出在这。找出原因后,果断的登录phpadmin进入论坛数据库。

数据库有两个,第一个information_schema可不是论坛的数据库,第二个才是。点击论坛数据库进入后进入表结构,把页面拉到最下面点击全选,然后在选中项选择修复表,然后是提示sql语句成功,然后再点击全选,在选中项选择优化表,提示SQL语句成功。

phpadmin


第一步完成了,还有一个重要的一步就是删除 install 目录中的index.php,这个官方有说明,很多新手不知道。

然后清空浏览器缓存后重新升级发现升级成功,不再陷入死循环。

写在最后忠告:dz升级时一定要备份数据库,按照官方提示一步步操作,不要急于求成。另外dz出新版本时不要急于升级,等出了正式版稳定后再考虑升级。