mssql(microsoft sql server2005)数据导入mysql方法

摘要:[NULL]

web应用从asp/mssql迁移到php/mysql,需要把数据从mssql2005导入到mysql5.0,在网上有很多导数据方法,最直接的说法是安装myODBC,在控制面板里添加数据源,直接导,但安装好几个版本的myODBC都不行,在mssql2005里就是死活不出来这个数据源。
再者是可以从mssql导入access,然后access(2007)里可以可以使用myODBC数据源;但有时会乱码或莫名其妙的错误。
还有是自己写程序,如php程序,用程序导,这样速度也见得不怎么快,还得写代码,很累,每导一张表,要写一张表和代码;写通用程序,又太麻烦了。
经过探索,可以使用以下方式导数据,操作稍微复杂一点,但感觉速度比较快。

使用mysql 本身的CSV导入功能,把数据导出为csv格式,在mysql里建好表,使用mysql的LOAD DATA语句导入csv数据。
具体如下:
1. 先从mssql导出数据为平面文件格式:这里要注意两点,选中unicode,设置文本限定符(如图)

2. 使用mssql生成创建建表的CREATE TABLE语句,对此语句修改一下,变成mysql的建表语句。可以使用文本编辑器(如UE,editplus之类)批量替换一下里面的字段类型,方括号,其它没用的垃圾信息。注意文本字段要用utf8,统一使用utf8,不容易出乱码(最好在创建数据库时就指定默认整理为utf8,这样不用对每个字段都要指定整理类型)。
3. 在mysql里创建表。可使用phpmyadmin,直接运行建表sql。
4. 整理csv数据,需要把csv转换成utf-8格式,我使用ue studio,如果没有其它工具,windows自带的记事本也可以。
5. 在phpmyadmin里导入数据:使用csv LOAD DATA语句,修改“字段分隔符”为逗号’,’ ,浏览到csv文档,导入吧。

附注:php默认的最大上传文件大小只有几M,要修改一个php.ini,允许上传文件大小改得大一点,否则无法导入大数据的。




coded by nessus
发表评论?

0 条评论。

发表评论