2007/02/01

解决将vbb数据库的mysql采集字符集从latin1转换为utf8的方法!

从vbb 3.0.X升级到3.5.X的多数人都跟我一样,要么用joey的转换程序,要么用vb中文官方的转换程序,将gbk编码转换为utf8编码,但是mysql采集字符集的方式却是latin1,而不是真正的utf8,造成通过phpmyadmin查看mysql字段数据时全部是乱码!

所以一直想解决。今天在joey的指导下,用他的方法成功转换,我把它写出来,让更多需要转换的朋友去转换。

我把它细化一下

windows下的方法是:
1、windows系统

win下可使用类似如下语句处理。通过命令行进入mysql/bin所在目录。
D:\usr\mysql41\bin>mysqldump -uroot -p --quick -f -l --compatible=mysql40 --default-character-set=latin1 --extended-insert=FALSE test2 > d:/zzz.sql

test2是你想导出数据的数据库名,d:\是路径,设置成你希望的路径就行了,zzz.sql是随意命名的文件,名称随意,只要有.sql后缀名就行了。

程序会提示你输入root的用户密码(如果存在密码的话),输入,程序开始导出。500MB的数据2-3分钟就完成了。


2、第二步,通过phpmyadmin建立一个新库,库名:test ,采集字符集设定为utf8-general-li

3、将备份出来的sql文件导入新数据库。

D:\usr\mysql41\bin>mysql -uroot -p --default-character-set=utf8 test <>replace =MyISAM =InnoDB -- d:/zzz.sql,更改type为innodb 如导入有错,多数人在这一步都会出错。所以此步略过。

实际上innodb存储引擎的性能远不如myisam,如果你不是企业需要日志的话,建议使用myisam.

Linux下面差不多。没啥区别的。

没有评论: