discuz全新安装升级,导入旧数据过程,顺便gbk转utf8

由于discuz官方已经不更新了,现在又只有现成的utf8版本,没有gbk版本。我们原来使用的是gbk编码的,最近想改版,顺便升级一下,就索性把gbk也换成utf8吧,这样以后也方便,国际化嘛!

第一步:全新安装utf8版本的discuz 3.4 ,安装时选择ucenter非独立,除非你不想升级ucenter。不过貌似ucenter一直没什么更新,要不要独立安装,你们自己定。我是有洁癖的,想安装最纯净的,后面再剥离也行。

第二步:导出原数据,指定为utf8编码导出,表结构和数据要分开导出,数据量不大的,直接用phpmyadmin等客户端工具导出,如果数据量很大的话,还是建议在命令行下执行语句:

导出结构:

mysqldump -d -u root -p 数据库名 > /目录/struct.sql

导出数据:

mysqldump --default-character-set=utf8 -t -u root -p 数据库名 > /目录/data.sql

第三步:修改表结构struct.sql的默认编码,用文本工具批量把”gbk“换成”utf8“.

第四步:新建一个库,把导出的sql再以utf8的编码导入进去,同样视数据量大小决定是否用命令行,否则数据大的话,会导入超时。进入到mysql里面执行导入语句为:

source /目录/struct.sql;
source /目录/data.sql;

第五步:修改config/config_global.php 、config_ucenter.php 和uc_server/data/config.php的配置。

第六步:进入discuz管理中心,更新缓存,完毕!

特别提醒:由于我的原来的版本是discuz3.2 ,升级到discuz3.4 ,数据库的某些表还是有一些变化的,可以用对比工具对比两个版本的表结构,在原来的表结构中相应的增加字段。如果是同版本转换,可以忽略。

上一篇:A - Robot Bicorn Attack


下一篇:java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp