MSSQL2008 64位 ODBC问题

stevenhzj 2011-08-04 08:26:32
MSSQL2008 64位的环境,
安装了mysql-connector-odbc-5.1.8-win64.msi,
但在SQL中无法找到 odbc的数据源。

运行:odbcad32.exe,可以看到已经成功安装了驱动。
...全文
278 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
我是这样建立的,在其他机器上是可以的。
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=192.168.1.10; DATABASE=ctidb; USER=root; PASSWORD=123456; OPTION=2'
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复
如果用MYODBC 的DSN的话,请进入ODBC配置栏, 将flag中有return matching rows 这项 打勾

如果用MYODBC的连接字符串,请将OPTION值 加 2
"driver={MySQL ODBC 3.51 driver},server=xxx,db=xxx,uid=xxx,pwd=xxx,option=3"
(备注,每个选项对应option一个值,如1,2,4,8..., 选中某个就加某个值)

你可能是用DSN.


http://zhidao.baidu.com/question/61206261.html

http://www.yesky.com/imagesnew/software/mysql/manual_ODBC.html
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
创建链接服务器的方法,我在其他地方试过,都没问题。
现在是64位2008中,不行。
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
应该是这个错误提示

尚未注册 OLE DB 访问接口 "MSDASQL"。
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复
你要创建连接啊!

EXEC SP_ADDLINKEDSERVER
@server = 'dxmysql', --连接名称(随意,规范就可)
@srvproduct = 'MYSQL', --连接MYSQL,数据库类型,固定的
@provider = 'MSDASQL', --连接MYSQL的编码,固定的
@datasrc = 'my_sql' --建立的ODBC连接(第二步建立的)

这儿名称对不对?
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
执行了。
消息 7202,级别 11,状态 2,过程 tb$exten,第 3 行
在 sys.servers 中找不到服务器 'MYSQL'。请验证指定的服务器名称是否正确。如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers。
消息 4413,级别 16,状态 1,第 1 行
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复
楼主有没有执行第一步,去进行授权!
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
就是要建立MYSQL数据源,但创建了,连不上。
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 stevenhzj 的回复:]

是的,我安装mysql-connector-odbc-5.1.8-win64.msi,就是为了MSSQL可以连接到mysql。
但在64位MSSQL2008中,不能创建链接服务器,也找不到ODBC的
[/Quote]

楼主要建立的是MYSQL的数据源,不是MSSQL的。。。
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复

SQLSERVER连接MYSQL 建立链接如下:

数据库软件与ODBC软件:mysql- 5.1.50-win32与ODBC5·1(注意,odbc3.1版本,会出现乱码)
MYSQL数据库情况:gmp_test

第一步:先要在MYSQL进行授权,让主机能访问MYSQL数据库,设置如下:
在mysql数据库执行,语句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.216' IDENTIFIED BY 'yxtech' WITH GRANT

第二步:在SQLSERVER主机,设置ODBC连接,建立的是MYSQL的数据源:

第三步:在SQL SERVER 配置连接,配置语句如下
--删除连接
exec sp_dropserver 'dxmysql','droplogins'
--建立一个新连接
EXEC SP_ADDLINKEDSERVER
@server = 'dxmysql', --连接名称(随意,规范就可)
@srvproduct = 'MYSQL', --连接MYSQL,数据库类型,固定的
@provider = 'MSDASQL', --连接MYSQL的编码,固定的
@datasrc = 'my_sql' --建立的ODBC连接(第二步建立的)
--建立用户连接
EXEC sp_addlinkedsrvlogin 'dxmysql','false','bi_etl','root','yxtech'
--'dxmysql'为连接名称
--'bi_etl'为SQLSERVER用户,如果为NULL
--'root','yxtech' 为登录MYSQL 的用户及密码

--进行查询
select * FROM OPENQUERY(dxmysql, 'select * from test1')
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
是的,我安装mysql-connector-odbc-5.1.8-win64.msi,就是为了MSSQL可以连接到mysql。
但在64位MSSQL2008中,不能创建链接服务器,也找不到ODBC的
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 stevenhzj 的回复:]

需要连接mysql数据库
[/Quote]

连接MYSQL数据库,那楼主需要做的是MYSQL的数据源而不是SQL的,MYSQL是连接不上SQL的。
stevenhzj 2011-08-04
  • 打赏
  • 举报
回复
需要连接mysql数据库
mingpei0703 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acherat 的回复:]
MSSQL2008 64位的环境,
安装了mysql-connector-odbc-5.1.8-win64.msi,

楼主是MSSQL环境,可是为什么要装MYSQL的。。。
[/Quote]
+
AcHerat 元老 2011-08-04
  • 打赏
  • 举报
回复
MSSQL2008 64位的环境,
安装了mysql-connector-odbc-5.1.8-win64.msi,

楼主是MSSQL环境,可是为什么要装MYSQL的。。。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧