中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Mysql
推荐:MySQL 4.1 数据如何转换详细讲解
作者:佚名 时间:2007-06-21 15:37 出处:华启数据 责编:月夜寒箫
              摘要:推荐:MySQL 4.1 数据如何转换详细讲解

MySQL4.1增加了编码的支持,所以在转换旧数据的时候稍微麻烦一些,但只要注意以下几点,基本没问题的:

1、转换之前一定要先把原有数据dump出来,一般原有数据都是gb2312编码吧,dump命令如下:

MySQLdump -u -p database –add-drop-table –extended-insert

 

–add-drop-table是为了导入的时候省去建表环节,–extended-insert是为了防止在导入的时候一个sql语句过大的情况,想想你的上千条记录写在一条sql语句中是多么的恐怖。

 

这里假定原有数据库是gb2312编码,需要转换为utf8编码,其它编码之间的转换类似。

 

2、修改dump出来的sql文件,用Emeditor或iconv把文件的编码转换为utf-8,注意最好不要那个什么“Unicode Signature(BOM)”,因为MySQL.exe不认的。再把文件中的gbk_bin替换为utf8_general_ci,把gbk替换为 utf8,然后在文件最前面加上:

 

set names utf8;

 

带上BOM,MySQL不识别的错误大体如下:

 

ERROR 1064 (42000) at line 1:
            You have an error in your SQL syntax;
            check the manual that corresponds to your
            MySQL server version for the right syntax to use near ‘???
            /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */’ at line 1

3、重新建MySQL库,然后导入备份的sql语句,导入命令如下:

 

mysql -u -p database < dumpdata.sql

 

4、如果是以前导出的文件,导入的时候遇到错误:

 

Got a packet bigger than ‘max_allowed_packet’ bytes or
            ERROR 1153 (08S01) at line 616: Got a packet bigger than
            ‘max_allowed_packet’ by tes

就需要修改MySQL的最大允许包大小了,编辑my.ini,在[MySQLd]部分(不在这部分没用)添加一句:

 

set-variable=max_allowed_packet=10485760

 

重启MySQL服务就可以了,我这里设置的是大约10MB。

 

到这里数据导入基本就完成了,接下来就是根据各个应用的不同来调整了,一般有的系统已经支持了,但还有的不支持,不过调整方法大概分以下几类:

 

1、在数据库连接后面加上

 

mysql_connect(….
            mysql_query(”set names ‘utf8′”);

 

 

这种情况最多,比如Brim什么的。

 

 

2、将语言文件或模板文件的编码设置为utf-8,注意是直接把文件编码转换了就可以,内容不用管,这样的有phpwind, mantis。使用工具可以是iconv。

3、修改模板文件,设置HTML中的

 

 

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

 

原先是gb2312编码的系统多半需要改这个。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有