mysql数据库之latin1转utf8格式指南_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

mysql数据库之latin1转utf8格式指南

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:mysql数据库latin1UTF8
黑客防线网安网讯:我之前的数据库编码是默认的LATIN1,但是想转换为UTF8,baidu、google了半天,方法有很多,可是许多方法要么就是特别麻烦,要么就是根本无效果。
我之前的数据库编码是默认的LATIN1但是想转换为UTF8baidu、google了半天,方法有很多,可是许多方法要么就是特别麻烦,要么就是根本无效果

查了半天,也测试了半天,终于搞定了,下面将步骤写一下

测试环境:WINDOW 7 32位Service Pack 1

Mysql版本:5.5.15,安装在D:MySQL5目录下

1.由于我的虚拟空间提供商只提供用MySQL 4.0备份的数据库文件,MySQL 4.0x系列只支持LATIN1编码,首先需要修改此文件,将文件中每一个Create Table项里的TYPE=MyISAM替换成ENGINE=MyISAM,这一点非常重要。

2.修改D:my.ini,将[mysql]区段中的default-character-set=xxx改成default-character- set=latin1,将[mysqld]区段中的character-set-server=xxx改成character-set- server=latin1,然后重启数据库。

3.用缺省字符集创建一个数据库(现在的缺省字符集应该是latin1,你也可以使用show variables like ‘character%’去查看现在数据库的字符集),并执行mysql –u root –p <Database Name> < sql文件名将mysql 4.0x导出的数据导入到数据库中(这个步骤是一定不能省滴,切记!)。

4.用5.5的mysqldump导出数据:
mysqldump -uroot -p --compatible=mysql40 --default-character-set=latin1 test  >  test.sql

test是你想导出数据的数据库名,test..sql是随意命名的文件,名称随意。

程序会提示你输入root的用户密码(如果存在密码的话),输入,程序开始导出。

重点:--compatible=mysql40 --default-character-set=latin1,当指定了--compatible=mysql40参数后,可以指定数据库编码

5.通过MySQL-Front建立一个新库,库名:test,采集字符集设为utf8,COLLATE设为utf8-general-ci(也可以在 MySQL控制台下键入create database test default character set utf8 collate utf8_general_ci; 创建)。然后将导出的test.sql转换为UTF-8编码,我用的是linux下的iconv命令。

6. .修改D:my.ini,将[mysql]区段中的default-character-set=xxx改成default-character- set=utf8,将[mysqld]区段中的character-set-server=xxx改成character-set- server=utf8,然后重启数据库。

7.将备份出来的sql文件导入新数据库(别忘记把TYPE=MyISAM替换成ENGINE=MyISAM)。
mysql –u root -p --default-character-set=utf8 test  < /test.sql

完成。。。

打开MySQL-Front,以UTF8编码登录,看看是不是可以看到可爱的汉字了。
如果导入数据时报“MySQL server has gone away”,可以修改my.ini的[mysqld]区段,加入max_allowed_packet = 10M,然后重启数据库即可。
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-16854-1.html
网站维护教程更新时间:2012-04-25 05:27:07  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer