日期:2014-05-18  浏览次数:20691 次

mssql 远程连接 mysql数据库
请教当前数据库为MSSQL,想远程连接MYSQL数据库,具体应当怎么操作?

------解决方案--------------------
SQL code
sqlserver2005远程连接 mysql 
2种方法
一是通过建立link的方法
sp_addlinkedserver     'ntest-link名',   'MySQL',  'MSDASQL--支持的链接方式',  'mytest-dsn名'
GO
sp_addlinkedsrvlogin   'ntest-link名','false', 'sa-sqlserver用户','mythzz-sqlserver密码'
具体可以参考 帮助文档
select  * from  ntest..pdns.tt
但是我式了 提示拒绝用户需要密码
Driver]Access denied for user
等空了在搞下


第二种方法是直接用
OPENROWSET与OPENQUERY(具体可以查sql帮助文档)

开启数据库选项

SP_CONFIGURE 'show advanced options',1 

GO 

RECONFIGURE 

GO 

-- 为开启为关闭 

SP_CONFIGURE 'Ad Hoc Distributed Queries',1 

GO 

RECONFIGURE 

GO 

SP_CONFIGURE 'show advanced options',0 

GO 

RECONFIGURE

 

 

SELECT *
FROM OPENROWSET('MSDASQL','mytest';'root';'mythzz',
   'SELECT * FROM pdns.tt')

------解决方案--------------------
参考:

SQL code

/*
标题:SQL Server 2000 连接mysql.
作者:爱新觉罗.毓华 
时间:2009-02-23
地点:广东深圳
*/

--连接mysql

安装MySQL的ODBC驱动MyODBC

1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN

2、建立链接数据库
EXEC sp_addlinkedserver  @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'
GO
EXEC sp_addlinkedsrvlogin  @rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用户名',@rmtpassword='mysql的密码'

3、查询数据

SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' )

4.如果Mysql修改密码后必须重新映射一下EXEC sp_addlinkedsrvlogin
(http://topic.csdn.net/u/20090223/14/bd4eaef6-986e-483a-8155-5a563692d922.html)