数据迁移问题汇集

1.  sql server 2000 迁移到mysql

 

        之前,mysql有一个迁移工具叫MySQLMigrationTool.exe  放在MySQL GUI Tools 5.0包中。从09年底开始,MySQL GUI Tools 就已经停止更新,而是整合到了MySQL Workbench中,在官方说明中,计划在MySQL Workbench 5.2中实现数据迁移的功能,但是我在MySQL Workbench 5.2.21 OSS中没有发现,只好使用MySQLMigrationTool.exe来进行迁移工作。

 

  初次启动MySQLMigrationTool,得到下图错误:

 

解决办法,保证jre安装正确。

在cmd中执行:

cmd> cd "d:/Program Files/MySQL/MySQL Tools for 5.0"

cmd> d:/Program Files/MySQL/MySQL Tools for 5.0>MySQLMigrationTool.exe -debug

(参考http://www.pagecool.com.cn/bbs/dispbbs.asp?boardid=17&id=360)

 

   数据库中的数据内容包含中文,表内容不能正确迁移,(本次迁移的目的数据库mysql字符集已经设置成gdk)  查看如下:

 


mysql> show variables like '%char%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name            | Value
     |
+--------------------------+----------------------------------------------------
-----+
| character_set_client     | gbk
     |
| character_set_connection | gbk
     |
| character_set_database   | gbk
     |
| character_set_filesystem | binary
     |
| character_set_results    | gbk
     |
| character_set_server     | gbk
     |
| character_set_system     | utf8
     |
| character_sets_dir       | D:/Program Files/MySQL/MySQL Server 5.0/share/chars
ets/ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)

 

 

解决办法参考以下步骤:

 

       如果源数据库里有中文字符,必须显式设置几个有关字符集的地方:
      A. Source Database 选择Database System为MS SQL:
       这里需要手动写jdbc连接串:点击界面下方的Advanced键,出现一个方框,提示输入 "Connection String:",在这

里 输入如下格式:
       jdbc:jtds:sqlserver://IP:PORT/YOURDB_NAME;user=USER;password=PASSWD;charset=gb2312(or gbk);domain=
   
      其中,大写 IP, PORT, YOURDB_NAME,USER, PASSWD都是要用实际MS SQL Server服务器的ip和端口,数据库名,数据

库用户名,密码填写;
   
     B. Target Database   同样需要手动编辑jdbc连接串:
      点击界面下方的Advanced键,出现一个方框,提示输入"Connection String:"
       在这里输入如下格式:

        jdbc:mysql://IP:3306/?user=USER&password=PASSWD&useServerPrepStmts=false&characterEncoding=gbk
    
        其中,大写 IP, USER, PASSWD都是要用实际MySQL服务器的ip,数据库用户名,密码填写
   
     C.    选择sql server的schema和表
     D.    Object Mapping
       修改"Migration of type MSSQL Table":
       点击"Set Parameter",选择"User defined", 设置"charset=gb2312(or gbk), collation=gb2312(or gbk)

_chinese_ci"
     E.    之后没有别的选项,一直到最后
     F.    移植完以后,用图形工具(MySQL query browser、SQLyog等)或用mysql客户端(命令行)联接,都可以看到中文。
        在客户端(命令行),先执行
        mysql> set names gb2312(or gbk);


    说明: 由于MS SQL server和MySQL在语法格式和数据类型定义等方面有一定的差异,所以移植过程不是很简单,可能需要反复

几次,修正语法格式和数据类 型定义。MySQL Migration toolkit可以让用户手动修改生成的MySQL SQL语句,在其中

的"Manual Editing"一节

(参考:http://read.newbooks.com.cn/info/164179.html)

 

 

 

 


你可能感兴趣的:(数据迁移问题汇集)