我们这里的论坛由于使用了十几年,之前的版本是Discuz! X3.2 后来无缝升级到 Discuz! X3.3,但是还是快照被劫持discuz快照被劫持的解决办法,而且Discuz! X3.3 已经不再更新了。所以我们这里打算到Discuz! X3.4,但是官方版本最新的版本是UTF-8的编码,所以我们这里先把数据库导出后转编码重新导入再升级版本。
关于如何导出Mysql数据库,请看这里:mysqldump gzip 备份及还原 压缩 图文教程
gunzip解压文件
gunzip laoji.org_2017-12-12-03-30-01.sql.gz
.sql文件转gbk编码到utf-8,并替换对于的create语句:
我们这里的文件还是挺大的,如果用Windows打开的话肯定是崩溃了,所以我们这里直接在Linux进行转码操作。
ls -lh laoji.org_2017-12-12-03-30-01.sql
-rw-r–r– 1 root root 6.4G Dec 12 03:40 laoji.org_2017-12-12-03-30-01.sql
ls -lh laoji.org.cat.tmp.sql
-rw-r–r– 1 root root 9.6G Dec 12 09:37 laoji.org.cat.tmp.sql
使用iconv转码:
sed 's/CHARSET=gbk/CHARSET=utf8/g' laoji.org_2017-12-12-03-30-01.sql | iconv -c -f gb18030 -t utf-8 > laoji.org.utf8.sql
重新生成的utf-8文件就是 laoji.org.utf8.sql 了。
注意:如果文件过大,很容易倒是shell丢失,可以不时的使用空格或者回车保持shell的连接。
不懂的请参照linux下的:grep、sed 命令,linux shell 命令行 wordpress 替换 谷歌字体 fonts.googleapis 一键命令.
以上命令是将sql语句里面的:
CHARACTER SET=gbk
变成
CHARACTER SET=utf-8
将COMMENT 后面的一些乱码去掉,有些可能少了分号的:
sed -i "s/COMMENT.*,/,/g" `grep -lr "COMMENT.*," laoji.org.utf8.sql`
导入数据库
mysql -uxjjbbs -p xjjbbs --default-character-set=utf8 < laoji.org.utf8.sql
然后从git下载最新的Discuz! X3.4即可。
发表回复