SQLSERVER 链接 MYSQL 的 两种方法 及 未发现数据源名称并且未指定默认驱动程序 处理办法
2016-03-03 19:54
756 查看
MSSQL和MYSQL建立 链接:
-- 方法一、提前在电脑上安装mysqlodbc驱动,在系统odbc数据源中预先添加一个DSN名为testmysql的数据源,,并配置好dsn,并测试能连通。
方法二、前提是先安装好驱动程序,不用再odbc里面建立dsn,通过指定指定名称,调用指定的驱动去建立。
建立链接
登陆:
测试:
SELECT * FROM OPENQUERY(MySQLTestKKK, 'select * from data_account_address ' )
删除相关:
Exec sp_droplinkedsrvlogin MySQLTestKKK,Null
EXEC sp_dropserver MySQLTestKKK
请使用 sp_helpserver 来显示可用的服务器。
参考同僚文档,一并感谢。
-- 方法一、提前在电脑上安装mysqlodbc驱动,在系统odbc数据源中预先添加一个DSN名为testmysql的数据源,,并配置好dsn,并测试能连通。
EXEC sp_addlinkedserver @server = 'testmysql11', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'testmysql' EXEC sp_addlinkedsrvlogin @rmtsrvname='testmysql11',@useself='false',@locallogin='sa',@rmtuser='wx',@rmtpassword='1234' SELECT * FROM OPENQUERY(testmysql11, 'select * from data_account_address ' )
方法二、前提是先安装好驱动程序,不用再odbc里面建立dsn,通过指定指定名称,调用指定的驱动去建立。
建立链接
EXEC sp_addlinkedserver @server='MySQLTestKKK', @srvproduct = 'db_main', --MYSQL的这里是数据库名,貌似填错也没关系 @provider = 'MSDASQL', @datasrc = NULL, @location = null, @provstr = 'DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=your ip and so on;DATABASE=db_main;UID=root;PORT=3306;',---MySQL ODBC 5.3 Unicode Driver 这里是变化的,应该是随着,安装驱动版本的不同,在ODBC里显示的名称不同,稍微有点变化,但是要以ODBC显示出的默认名称为准。否则有可能报错“OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序"。” 网上看过很多文章,但是这里没讲清楚,所有大多数人只会用第一种方法。
---说明一点:EXEC sp_addlinkedserver @provstr = 'DRIVER= 后面的“MySQL ODBC 5.3 Unicode Driver” 一定要是建立链接的机器上安装mysql odbc 驱动的机器上的ocbc显示的名称,这个机器有可能是远程机器,也有可能是本地机器,取决于你登录sqlserver时的选择,并且那台机器一定要安装好相应驱动。
--再说明一点,有的人嫌 <span style="font-family: Arial, Helvetica, sans-serif;">DRIVER= 后面的“MySQL ODBC 5.3 Unicode Driver” ,手写不一定写得对,在xp下,可以通过注册表复制相关键名的方法实现</span> --HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\MySQL ODBC 5.1 Driver
--另外不知大家注意到了我xp上用的名称是MySQL ODBC 5.1 Driver ,而服务器上用的是MySQL ODBC 5.3 Unicode Driver ,二者 写错了就报“OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序"@catalog = NULL
登陆:
go EXEC sp_addlinkedsrvlogin @rmtsrvname='MySQLTestKKK',--和上面的一直 @useself='false', @rmtuser='wx', @rmtpassword='1234';
测试:
SELECT * FROM OPENQUERY(MySQLTestKKK, 'select * from data_account_address ' )
删除相关:
Exec sp_droplinkedsrvlogin MySQLTestKKK,Null
EXEC sp_dropserver MySQLTestKKK
请使用 sp_helpserver 来显示可用的服务器。
参考同僚文档,一并感谢。
相关文章推荐
- mysql中null与not null的区别及效率
- MySQL优化建议
- MySQL--BENCHMARK()函数
- mysql 使用游标进行删除操作的存储过程
- mysql的安装
- mysql给root开启远程访问权限,修改root密码
- 数据库mySQL
- 构建内网的MySQL的yum源
- 又一个有趣的mysql死锁测试与源码分析
- socket C 客户端发送数据到服务端,操作mysql数据库
- 彻底卸载Mysql 服务器
- mysql联查
- Mysql中设置小数点用什么数据类型 decimal
- mysql 日志
- mysql root 忘记密码 破解
- mysql备份:一,Xtrabackup
- mysql 更改root密码
- mysql安全参数设置
- QMYSQL driver not loaded
- mycat实现mysql大表自动水平扩展