下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >大数据 >MySQL 4.1数据怎样转换

MySQL 4.1数据怎样转换

好汉发布于 2015-10-16 22:13查看:1287回复:14

  4.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
My 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,注意是直接把文件编码转换了就可以,内容不用管,这样的有wind, mantis。使用工具可以是iconv。
3、修改模板文件,设置HTML中的


    上面是小编 4.1数据转换的经验之谈,想更多的朋友可以登录课课家官网查看视频教程。


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有14条评论

  • 慧星的那一夜
  • Real Madrid
  • 药师
  • mr jack
  • YUI
  • Mr ken
  • Mright
  • cappuccino
  • 课课家技术团队1
  • love洒脱留守
  • 酸酸~甜甜
  • 课课家团队03
  • K哥馆
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: