从MySQL4.0向MySQL5迁移数据

用phpMyAdmin时在导入和导出MySQL5数据时,有一个SQL compatibility mode选项,其可选值为NONE、ANSIDB2、MAXDB、MYSQL323、MYSQL40、MSSQL、ORACLE、TRADITIONAL。这是MySQL解决导入导出数据时不同数据库类型或者版本SQL语句不同的问题。MYSQL40选项明显是为了解决和MYSQL4.0数据迁移问题,但是用phpMyAdmin管理MySQL4.0(版本是4.0.25)时,则没有SQL compatibility mode这个选项,应该是不支持吧。

MySQL的默认编码是latin1,而从MySQL4.0中导出数据的SQL语句并没有编码声明(《利用phpMyAdmin把wordpress数据从MySQL4迁移到MySQL5》),所以如果从MySQL4.0中导出数据的编码不是latin1,比如是utf8,那么直接导入到MySQL5中编码会是默认的latin1而出现中文乱码。所以操作步骤如下:

  1. 用phpMyAdmin从MySQL4.0中导出所需的数据表,并勾选上“zip压缩”或“gzip压缩”,这样导出的数据量小。
    用phpMyAdmin从MySQL4.0中导出所需的数据表
  2. 用phpMyAdmin在MySQL5中创建一个新的数据库,注意需要声明编码为实际编码,比如utf8。如果不声明编码,那么导致导入的数据编码全部是latin1,而出现中文乱码,无法简单修正。用phpMyAdmin在MySQL5中创建一个新的数据库
  3. 在import页面把从MySQL4.0中导出的数据导入,注意选择字符集和SQL compatibility mode模式为MYSQL40,这样整个数据就导入成功了。
    在import页面把从MySQL4.0中导出的数据导入

由于MySQL默认编码的原因,直接导入整个数据库则无法设置其编码,从而导致中文乱码,所以第1步要求导出的是数据库中的表而不是整个数据库,要想导入整个数据那么需要修改MySQL的默认编码,修改安装目录的下的my.ini文件(Unix下是my.cnf)中对Client和Server的编码声明,然后重启服务即可:default-character-set=utf8

标签:, , , ,

作者:秦歌,时间:2007-10-07 0:36,归纳于:Apache & MySQL & PHP,订阅:RSS 2.0,引用:Trackback

有评论 3 条,发表一条评论 »

电脑精品教程网说:2007-10-15 15:04 #1

非常好的文章,请问是否可以转载?

Yvonne说:2008-08-14 2:20 #2

请问 为什么我的PHPadmin 没有新建数据库的权限~~ 就是您所指的第二步 我的显示没有权限

秦歌说:2008-08-17 1:53 #3

你看看你的MySQL是否配置正确,MySQL的root权限是否给了PHPadmin

发表一条评论

您可以在下面评论内容中使用下列XHTML标签:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

您或许也喜欢看:

  1. 升级到Wordpress2.3小结
  2. Ajax的小贴士
  3. 利用phpMyAdmin把wordpress数据从MySQL4迁移到MySQL5
  4. 使用SSI功能时,GB2312转换成UTF-8的注意事项
  5. MySQL&phpMyAdmin安装于Win下
  6. 解决了公告在其他机子上不能显示的问题
  7. 范老师的婚纱照好漂亮
回到页眉