Home > Database > Mysql Tutorial > body text

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

WBOY
Release: 2016-06-07 16:05:59
Original
895 people have browsed it

MySQL4.1增加了编码的支持,所以在转换旧数据的时候稍微麻烦一些,但只要注意以下几点,基本没问题的: 1、转换之前一定要先把原有数据dump出来,一般原有数据都是gb2312编码吧,dump命令如下: MySQLdump -u -p database –add-drop-table –extended-inser

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

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

MySQLdump -u -p database –add-drop-table –extended-insert
Copy after login

–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: <br>You have an error in your SQL syntax; <br>check the manual that corresponds to your <br>MySQL server version for the right syntax to use near ‘??? <br>/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */’ at line 1
Copy after login

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

mysql -u -p database 
Copy after login

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

Got a packet bigger than ‘max_allowed_packet’ bytes or <br>ERROR 1153 (08S01) at line 616: Got a packet bigger than <br>‘max_allowed_packet’ by tes
Copy after login

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

set-variable=max_allowed_packet=10485760
Copy after login

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

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

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

mysql_connect(…. <br>mysql_query(”set names ‘utf8′”);
Copy after login

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

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

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

Copy after login

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

【相关文章】

  • MySQL手动安装方法与中文解决方案
  • MySQL数据库中用GRANT语句增添新用户
  • MySQL数据库中部分数据损坏恢复过程

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template