Discuz X2 论坛迁移搬家碰到的种种困难

这两天一直忙活迁移论坛了,碰到种种困难,还好都挨个解决了,这里不得不感叹,要是没有搜索引擎,我们就完了。先说下自己的坛子吧,DISCUZ X2,大概将近8000用户,每天几千帖子,已经积攒了将近20W的帖子,还有10G的附件文件。光数据库就300MB了。真是不小,所以以前用虚拟主机也有点用不过来了,老是CPU过载,宕机。一气之下,鸟枪换炮,换了个CPU,4核8线程,2.26G的CPU,Xeon E5520,1G内存,2G上限。价格和原来的虚拟主机差不多。下边看看我遇到的问题吧。

1、首先是海量文件,主要是上传的附件,算了下大概10G了。用FTP实在是没法弄,光下载就得多久啊,更别说上传了,还好发现了可以用 SCP 命令,在两个SHELL中间完成,速度100MB/s 几分钟就传完了,用SCP之前,先用 TAR 命令,打包一下。

2、然后就是数据库,出现种种问题,用phpmyadmin导入数据库的时候,老出现下边的错误。

SQL 查询:
INSERT INTO `pre_common_member` (`uid`, `email`, `username`, `password`, `status`, `emailstatus`, `avatarstatus`, `videophotostatus`, `adminid`, `groupid`, `groupexpiry`, `extgroupids`, `regdate`, `credits`, `notifysound`, `timeoffset`, `newpm`, `newprompt`, `accessmasks`, `allowadmincp`, `onlyacceptfriendpm`, `conisbind`, `avatar`) VALUES(3701, '654076755@qq.com', 'evanyan', '5f2c45739a96a0d41bce53d16684f3c8', 0, 1, 1, 0, 0, 17, 0, '', 1321125161, 0, 0, '9999', 0, 1, 0, 0, 0, 0, ''),(3702, '2622832219@qq.com', '蚊子撒', '8308fbcffcec456c1ceb38fa5264b389', 0, 1, 1, 0, 0, 18, 0, '', 1321125188, 172, 0, '9999', 0, 2, 0, 0, 0, 0, ''),(3706, 'F89966668@126.com', 'PuNish', '5069057c67fb99b90564ddfc689f421d', 0, 1, 1, 0, 0, 17, 0, '', 1321171422, 17, 0, '9999', 0, 21, 0, 0, 0, 0, ''),(3710, 'chaven1995@hotmail.com', 'ChaVen3', '63c4cee43580fb728dec3f2a01eb5dbb', 0, 1, 1, 0, 0, 17, 0, '', 1321229515, 2, 0, '9999', 0, 0, 0, 0, 0, 1, ''),(3704, '619679387@qq.com', 'chenfu', '4bbc2d2212[...]
MySQL 返回:
#1062 - Duplicate entry 'dafuq?' for key 'username'

GG了一下,发现是用户名重复的问题,用 discuz 提供的 checkuser.php 依旧没用,没查到任何问题,最后搜索了下,原来是论坛里边有一堆叫 dafuq 的人,后边带着各种乱码,全部改名后,单独导入 pre_common_member,成功。

3、导入 pre_common_member 的时候,还出现了个问题,发现错误出现在 pre_common_member 中的一个 column,名字叫做 avatar,看来是头像的问题,可能是原来用pw论坛时候带的,要么就是插件带的。在后台验证了一下数据库,发现 Avatar 不是 Discuz 带的,那么就是可以直接删除了,直接用 phpmyadmin 删除此列。重新导入 pre_common_member,成功。

3、在数据文件和数据库全部导入成功后,发现无法登陆前台,提示 Can not write to cache files, please check directory ./data/ and ./data/cache/ ,已经将两个文件夹改权限为777,还是不管用。再去搜索,发现说更新缓存就OK了,去后台更新缓存,没想到更新缓存也提示这个错误。最后删除cache下的文件,OK,终于不提示那该死的错误,但是模板还是没有加载,去后台更新缓存,搞定了!!