mysql 4.1数据转换指南

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’ by

tes

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

set-variable=max_allowed_packet=10485760

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

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

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中的

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

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

时间: 2024-12-27 19:20:32

mysql 4.1数据转换指南的相关文章

MySQL&amp;nbsp;升级方法指南大全

原文:MySQL 升级方法指南大全 通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本.例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0. 如果都是比较新的版本的升级可以参考下面的文章, MySQL数据库的版本更新很快,新的特性也随之不断的更新,更主要的是解决了很多影响我们应用的BUG,为了让我们的MySQL变得更美好,我们有必要去给它升级,尽管你会说它现在已经跑得很好很稳定完全够用了.下面我们来

MYSQL数据库初学者使用指南

有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接MYSQL.修改密码.增加用户等方面来学习一些MySQL的常用命令. 一.连接MySQL. 格式: MySQL -h主机地址-u用户名 -p用户密码 1.例1:连接到本机上的MySQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MySQL的提示符是: MyS

如何学习MySQL数据库 初学者使用指南

有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: my

MySQL乱码问题终极指南

mysql的字符集设置众多,从客户端到连接到结果集,从服务器到库到表到列,都可以设置字符集,灵活很强大,但就是很容易出问题,如果不了解其机制,很容易就出现乱码问题.为了普度众生,让大家尽量在工作中少受或者不受乱码的骚扰.困扰,这里我结合之前其它同学在论坛的发帖,并结合自己的理解和实践,详细分析总结了一下,以飨各位看官. 关于字符集和乱码的基础知识这里就不详细说明了(请自行搜索),但有一个问题需要特别强调一下:乱码是怎么产生的?这个问题相信很多同学都是模棱两可,或者没有认真想过,反正理解就是"字符

MySQL乱码问题终极指南_Mysql

mysql的字符集设置众多,从客户端到连接到结果集,从服务器到库到表到列,都可以设置字符集,灵活很强大,但就是很容易出问题,如果不了解其机制,很容易就出现乱码问题. 为了让大家尽量在工作中少受或者不受乱码的困扰,这里我结合之前其它同学在论坛的发帖,并结合自己的理解和实践,详细分析总结了一下,以飨各位看官. 关于字符集和乱码的基础知识这里就不详细说明了(请自行搜索),但有一个问题需要特别强调一下:乱码是怎么产生的? 这个问题相信很多同学都是模棱两可,或者没有认真想过,反正理解就是"字符编码&quo

MYSQL数据库初学者使用指南_php技巧

有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 一.连接MYSQL. 格式:  mysql -h主机地址 -u用户名  -p用户密码 1.例1:连接到本机上的MYSQL.  首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:

Linux+MySql+Apache+php架设指南

本文是笔者在Linux服务器上安装PHP动态http://www.aliyun.com/zixun/aggregation/17117.html">Web服务器.Mysql数据库的安装配置手册.通过在服务器安装Apache.Mysql.PHP等功能实现一个建立一个PHP全动态的Web站点.本文是以Redhat9.0  Linux作为操作系统平吧, Apache版本是1.3.29:数据库 Mysql的牌本是3.23.58.PHP的版本是4.3.4 Linux系统的安装在此不在讨论,本文是以R

MySQL误删数据救命指南

事情缘起有次上课,大家聊起亲手造了啥大故障,排名最前的几种是: 误删文件. 误删库.表. 错误全表删除 / 更新. 升级操作失误. 都来看看你命中过几个,hoho. 简单说下我亲手造的一个大事故吧. 那大概是一个春暖花开的季节,我的内心是激动澎湃的,因为已经安排了休假计划.在这前几天,已经把一个新项目的数据库环境都部署好了,包括自动化备份. 等我美美的出去玩的时候,悲剧发生了,业务要求进行数据回滚,但发现备份文件不可用,原因是 备份时指定的字符集和表字符集不一致.我勒个擦,原来该项目采用新的字符

MySQL入门完全指南及Linux系统下基本的安装教程_Mysql

我们来了解一下MySQL的基本特性: 1.内部构件和可移植性 使用C和C++编写 用众多不同的编译器进行了测试 能够工作在众多不同的平台上.请参见2.1.1 "MySQL支持的操作系统". 使用GNU Automake.Autoconf和Libtool进行移植. 提供了用于C.C++.Eiffel.Java.Perl.PHP.Python.Ruby和Tcl的API. 采用核心线程的完全多线程 如果有多个CPU,它能方便地使用这些CPU. 提供了事务性和非事务性存储引擎. 使用了极快的&