2 wanke19891102 wanke19891102 于 2013.10.15 10:48 提问

sql server2008数据导进mysql数据库时报错

我使用的是navicat for mysql工具导入:首先选择导入向导-->选择ODBC导入类型--->选择s数据源:sql server Native client for 10.0-->输入服务器名称、用户名、密码、数据库。点击测试连接时,显示链接成功。最后点确定时报错了:无法打开文件provider=sqlncli10........;server spn=“”;这个错误 怎么解决?

1个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2015.11.05 16:26

从SQL Server数据库向Mysql数据库导入数据
郎行天下 郎行天下 2015-05-21 14:24:38
项目需要,由于项目先前是在 SQL Server 数据库开发的,所有数据都在 SQL Server 中,现在需要把数据搬到 MySQL 数据库中,方法有不少。多数情况下首先想到的是,在 SQL Server 中导出数据成一种文件格式,然后在 MySQL 中导入文件就可以了。但这样往往很麻烦,因为如果是在同一台主机上,安装有 SQL Server 和 MySQL 还好,但如果是两台主机,则往往不成功,会有很多错误,而且数据很容易乱。
所以说最直接的方法,还是运用驱动,直接从一主机到另一主机,从一库到另一库的 COPY,是灰常爽的哈,在这里写个笔记,供大家参考。
环境:
SQL Server 数据库安装在 XP 主机上,IP为 192.168.0.9,数据库用户名为 sa,密码为空。
MySQL 数据库,安装在 Linux 主机上,IP为 192.168.0.155,数据库用户名为 root,密码为123456。
MySQL 客户端工具:Navicat,该工具详细参考文章《一款非常好用的连接数据库的工具》。
特别说明:如果两台主机不在同一局域网内,也没问题,下面方法都适用。
第一步,用工具Navicat 连接MySQL 数据库。

第二步,打开数据库连接,新建数据库,并打开数据库。

第三步,新建导入向导并配置。

注意:在上方对话框,第 6 步点击确定后,可能会出现如下错误:

无法打开Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=sa;Initial Catalog=pms_db_cf;Data Source=192.168.0.9;Initial File Name="";Server SPN=""。

这是因为驱动选的不对:
如果源数据库主机是 XP,则选择驱动MicrosoftOLEDBProviderforSQL Server,串信息如下:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pms_db_cf;Data Source=192.168.0.9
如果源源数据库主机是Win7,则选择驱动SQL ServerNative Client10.0,串信息如下:
Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=sa;Initial Catalog=pms_db_cf;Data Source=192.168.0.9;Initial File Name="";Server SPN=""
顺便解释一下,上面的串中各部分的含义:
Provider=数据库驱动版本。
Integrated Security=以哪种用户身份登陆数据库。
Persist Security Info=默认值是False。
User ID=用户名。
Initial Catalog=源数据库名。
Data Source=源主机IP地址。

第四步,选择需要导入的数据,并导入即可。

第五步,刷新导入的数据库,查看表结构以及表中的数据,是否与原来的 SQL Server 中一致。
到此,复制库结构就算完成了,综上,总比导出成文件,再导入简单。Good Luck!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!