li
  当前位置:主页 > 基础知识 > 文章内容
li
MySQL 4.1数据库中数据转换注意事项
来源: www.ixdba.net  作者: ixdba.net技术社区    时间:2008-03-23   阅读:1  
ixdba.net技术社区mysql技术专题栏目:如果对这些技术问题有任何疑问,请给我们在文章后面留言:


  mysql 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 ma

  nual that corresponds to your MySQL server version

  for the right syntax to use n

  ear ‘???

  /*!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’ bytes

  就需要修改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,在这里可以下载。

  iconv -f gb2312 -t utf-8 gb2312.html > utf-8.html

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

  

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




  上一篇: 用Perl DBI连接MySQL数据库   下一篇: 用Apache与MySQL整合实现基本身份...
li
 §相关评论  
 热点文章

·RewriteRule重写规则的语法:A
·apache配置文件httpd.conf参数
·Apache的配置文件http.conf参数
·HTTP协议中POST、GET、HEAD等参
·XAMPP命令之LAMPP
·Linux中安装XAMPP(LAMPP)服务器
·网页禁止右键、禁止复制等代码
·java.lang.OutOfMemoryError:
·Mysql数据库在Linux系统常用命
·mysql问答:MySQL数据库连接过多
·MySQL数据库中Show命令的用法
li
 编辑推荐
·RewriteRule重写规则的语法:A
·apache配置文件httpd.conf参数
·Apache的配置文件http.conf参数
·HTTP协议中POST、GET、HEAD等参
·XAMPP命令之LAMPP
·Linux中安装XAMPP(LAMPP)服务器
·网页禁止右键、禁止复制等代码
·java.lang.OutOfMemoryError:
·Mysql数据库在Linux系统常用命
·mysql问答:MySQL数据库连接过多
·MySQL数据库中Show命令的用法
li
 相关篇章
·用Perl DBI连接MySQL数据库
·优化MySQL数据库查询的三种方法简...
·六大步保护MySQL数据库中重要数据
·如何修改遗失的MySQL的ROOT用户密...
·通过PHP连接My SQL的两种方法简介
·MySQL数据库账户授权的相关管理解...
·从MySQL到ORACLE程序迁移的注意事...
·向你介绍MySQL数据库备份的简单知...
·MySQL使用tips
·MySQL数据库批量导入脚本
·用Apache与MySQL整合实现基本身份...
·教你编写高质量、高性能的MySQL语...
·保护MySQL数据库中重要的数据注意...
·用新的PHP插件实现MySQL为基础的...
·教你如何使用触发器管理MySQL数据...
·在MySQL中获得更好的全文搜索结果
·关于MySQL数据库的用户认证系统分...
·通过数据库引擎来加速MySQL数据库
·针对于MySQL新增的复制特性的测试
·关于MySQL数据库的存储引擎详细介...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接