日期:2014-05-16  浏览次数:20789 次

sqlserver 数据 移植 mysql
    在sqlserver2000到mysql大家常常会碰到数据导入导出乱码的问题。遇到这个问题的原因就是sqlserver2000和mysql数据库的字符编码格式不一致导致的。我的思路就是保持sqlserver2000和mysql数据库编码一致性后,建立ODBC数据源,利用sqlserver2000的导入导出工具,利用ODBC数据源进行导出。下面是详细操作步骤。

    我们知道sqlserver2000不需要设置编码格式,它的编码格式是根据操作系统自动默认的。当然我们也可以更改。
打开企业管理器,右击(local)(Windows NT)属性。选中服务器设置。其中就有默认语言的设置选项。一般我们默认的话,windows又是中文系统的话,编码格式为simplified chinese 。
这种编码格式一般是指gb2312或者gbk。所以,如果要把sqlserver2000的数据导入到mysql中的话,mysql的数据库字符编码格式必须为gb2312或者gbk的编码,否则必定乱码。

    我们知道,当数据导入到mysql之后是无法修改字段的字符编码格式了。所以在我们没有导入之前,先创建一个schema,这个schema必须和sqlserver2000中要导出的数据库的名字一致才行。设置字符编码为gbk(gbk兼容gb2312而且可以显示更多中文)。

    在保证了两个数据库编码格式一致之后,我们开始创建ODBC数据源,进入系统的管理工具,有一个功能叫ODBC数据源,双击打开菜单,在用户DSN下添加mysql的ODBC driver。可能一些用户找不到mysql的ODBC driver 。没关系。我们进入mysql的官方网站,找到 connector ODBC 的安装包。给出传送门:http://dev.mysql.com/downloads/connector/odbc/。
下载并安装之后,在这里就可以找到mysql ODBC driver了。选中创建成功之后,在用户数据源的列表这里就会多一条你配置的记录。

    现在我们进入sqlserver2000的导入和导出数据。
    先选择好数据源—即要从哪里赋值,一般默认即可,还要选择好数据库,你要导出的数据库名字。


    再选择导入的目的。目的就选择刚才创建的mysql odbc driver。配置好DSN和数据库的用户名和密码。

    下一步选择从源数据库赋值表和视图
    下一步,选择你要导出的表和目的地表的名字。我们可以点击目的表,修改名字,点击转换,修改其中导入导出的字段名字和数据类型。再附送一张图。

    可以立即执行,也可以选择调度。我们这里就是复制整个数据库,不是做数据备转,所以立即执行,点击下一步。最后点击完成即可。
    点击完成之后,就会自动给我们复制数据了。当然可能其中一些转换会出错,那是两个数据库的字段类型转换问题,你可以在选择目的表的转换这里修改抓换的字段名和字段类型,以便数据可以完美导出。

    导出之后,去mysql看看,是不是中文不乱了呢