MySQL数据库编码转换方法

将latin1字符集转换成utf8字符集
源数据库:4.1.7(缺省latin1)
目标数据库:5.0.44(缺省utf8)

1、从源数据库服务器导出数据库
假定需要转码的数据库名称为bugs
#mysqldump -u root -p --opt --compatible=mysql40 --default-character-set=latin1 bugs > /root/xiaowei.sql

2、在目标数据库服务器创建新数据库
mysql>CREATE DATABASE `aaa` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3、将源数据库导出的sql文件拷贝到目标数据库/root

4、在目标数据库导入源数据库数据
mysql>use aaa
mysql>source /root/xiaowei.sql

或者:第三第四步可以合并为:

3、在源数据库连接上mysql数据库,然后
mysql>source /root/xiaowei.sql

同样可以将本地的sql文件中的数据插入到远程数据库,这样就不需要将源数据库服务器上的文件拷贝到目标数据库服务器上了。

备注:linux服务器的LANG=zh_CN.UTF-8  我的客户端SecurCRT的Character为UTF-8,不知道这些设置对数据库的编码是否有影响,在这种情况下,我的转码是成功的。其它环境没有测试。