热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » MySQL/MSSQL编程 » MySQL 4.1 数据如何转换详细讲解

MySQL 4.1 数据如何转换详细讲解

论坛链接
  • MySQL 4.1 数据如何转换详细讲解
  • 发布时间:2007-09-26 09:55:36    浏览数:6654    发布者:tzlink    设置字体【   
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编码的系统多半需要改这个。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理