从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




文章来自: 随网之舞
引用通告: 查看所有引用 | 我要引用此文章
Tags: Mysql 技巧
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.