文章参考了叶金荣的博客。
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。
第一步:导出旧数据
mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码(类似unix/linux环境下)
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
或者可以去掉 -f 参数,让iconv自动判断原来的字符集
--这里根据个人的方式来转换自己的sql文件的编码方式
第三步:导入
修改old.sql,在插入/更新语句开始之前,增加一条sql语句:
set names utf8;
mysql -hlocalhost -uroot my_db < new.sql
大功告成!!