日期:2014-05-16  浏览次数:20492 次

转换包含UTF8和latin1等多种编码的MYSQL数据库
写道
别人的今天问起,随手转了一下,很简单,这里截图说明一下
用phpmyadmin导入库test中后发现,这个库中有UTF8和latin1两种编码,如下图

先把test备份为test1库,在WIN下操作的话就是把:路径\MySQL\data下的test目录备份一下,改名为test1目录
在phpmyadmin中把所有为UTF8的表删除,在命令行中运行
D:\PHPServer\MySQL\bin>mysqldump -uroot -p –quick –compatible=mysql40 –default-character-set=latin1 –extended-insert=FALSE test > d:/zxs.sql

说明一下D:\PHPServer\MySQL\bin是我的安装目录,test为数据库,d:/zzz.sql为生成的数据文件,程序会提示你输入root的用户密码,输入后,等几分钟,zxs.sql就生成好了

通过phpmyadmin建立一个新库,库名:test2 ,采集字符集设定为utf8-general-li

再将刚才生成sql文件导入新数据库

D:\PHPServer\MySQL\bin>mysql -uroot -p –default-character-set=utf8 test2 < d:/zxs.sql

输入root密码,等几分钟,zxs.sql就导入成功了,到这还没完,因为这里只是把latin1编码的转换为utf8了
最后,停止mysql,把test2目录下的所有文件覆盖到我们刚刚备份的test1目录下,这样,test1目录就是我们要得到了转换好了的UTF8数据库了,OK,收工
当然,方法很简单,就是把latin1编码的表单独分离出来转为UTF8后再盖原来的库,这样多种编码也都可以完美的转换,这种情况也非常常见,换主机,升mysql版本等都会出现这种情况的。
?