discuz x2 升级 x3.2,提示需要先升级 ucenter 1.6
用 install/update.php?step=prepare 访问即可
discuz gbk 转 utf8
mysqldump 导出 sql 文件,将 gbk 替换成 utf8,文件另存为 utf8 编码
与升级操作相同,将utf8编码的upload下的安装文件上传至论坛根目录,并修改原有的 config 目录下的配置文件,数据库连接编码修改为utf8
将安装包的utility目录下的update.php复制到论坛install目录下,剩余操作与更新一致
更新完毕后,到 后台 -> 工具 -> 更新缓存
批量修改用户密码
假设新密码为123456
除了uid=1的用户全改掉
update pre_ucenter_members set password=md5(concat(md5('123456'),salt)) where uid!=1;
用户重命名
假设discuz的旧用户名为 xxx,要改成新用户名 yyy。
相关执行的SQL语句如下:
#UC用户表
update pre_ucenter_members set username='yyy' where username='xxx';
#论坛用户表
update pre_common_member set username='yyy' where username='xxx';
#帖子列表
update pre_forum_thread set author='yyy' where author='xxx';
#帖子内容表
update pre_forum_post set author='yyy' where author='xxx';
#帖子内容(慎用)
update pre_forum_post set message=replace(message,'xxx','yyy') where message like '%xxx%';
目录权限
linux环境需要设置
chmod -R 777 data
从 Discuz X2 升级到 Discuz X2.5
记得检查上传后目录对应都用户、用户组:http://www.discuz.net/thread-2212029-1-1.html
升级教程:http://www.discuz.net/thread-2744369-1-1.html
论坛搬家 数据迁移
吐槽一下:用官方的restore.php实在是太太太坑爹了。
每次点恢复不是提示404,就是ucenter通信失败,什么通信key/api/ip按帖子照做N轮还是抽筋。
还不如直接"改配置文件 + 导入数据库"恢复简单。
备份旧数据
数据库备份:进管理后台,站长 -> 数据库 -> 备份,生成都备份文件放在data/backup_xxxx目录下,名字一般是xxxx-1.sql等,分好几份存
站点文件备份:直接保存站点根目录下所有文件,打个tgz压缩包就行了
迁移前需要知道的信息
假设旧域名为 http://www.oldsite.com,旧数据库主机为db.oldsite.com,旧数据库名为 mydiscuzdb
要迁移到新的域名 http://www.newsite.com,假设根目录为 /srv/http
且已知新的mysql数据库主机db.newsite.com、端口newport、用户名newuser、密码newpwd
上传论坛文件
修改旧的根目录下的3个配置文件里的数据库连接信息:
config/config_ucenter.php
config/config_global.php
uc_server/data/config.inc.php
检查一下旧的根目录下出现localhost、db.oldsite.com、www.oldsite.com的文件,按实际需要进行修改
将旧的根目录下所有文件上传到新的http://www.newsite.com的对应都根目录/srv/http下
导入数据库
$ mysql -hdb.newsite.com -Pnewport -unewuser -pnewpwd
> create database mydiscuzdb
> use mydiscuzdb
> source xxx-1.sql
> source xxx-2.sql
> ...
也可以直接用navicat之类的客户端图形化工具导入,比较省劲
修复签名档图片链接
部分签名档图片会以 http://www.oldsite.com/data/xxxxxx/xxxx.png的形式出现,需要在数据库中更新
$ mysql -hdb.newsite.com -Pnewport -unewuser -pnewpwd
> use mydiscuzdb
> update pre_common_member_field_forum set sightml = replace(sightml,'http://www.oldsite.com','http://www.newsite.com')
其他
这样搞完,大部分数据都已经可用。但是自定义用户组的信息失效,不知何故。
没有评论:
发表评论