再论mysql不同版本迁移出现的乱码

上一篇blog里面提到了高版本mysql迁移到低版本mysql出现乱码的解决方法,但在今天迁移两个论坛的时候,从低版本迁移到高版本,提到的那个方法无效了。

迁移的论坛是discuz,使用的字符集是gb2312。众所周知,discuz使用的编码一直是gbk的,但这个mysql并没有编译进去,所以在导入的时候,不管使用–default-character-set,还是create database里面加上default character set都无济于事。在察看多篇文章后,尝试了一下在create table后面加上CHARACTER SET gbk,然后在sql文件开头加上set names gbk就可以正常导入了。

set names gbk;

CREATE TABLE cdb_access (
uid mediumint(8) unsigned NOT NULL default ‘0′,
fid smallint(6) unsigned NOT NULL default ‘0′,
allowview tinyint(1) NOT NULL default ‘0′,
allowpost tinyint(1) NOT NULL default ‘0′,
allowreply tinyint(1) NOT NULL default ‘0′,
allowgetattach tinyint(1) NOT NULL default ‘0′,
allowpostattach tinyint(1) NOT NULL default ‘0′,
PRIMARY KEY  (uid,fid)
) TYPE=MyISAM CHARACTER SET gbk;