[英]Linked server Cannot initialize the data source object of OLE DB provider
I am trying to create linked server to a application which uses pervasive database i setup everything right but i kept getting Cannot initialize the data source object of OLE DB provider "MSDASQL"
i tried both 32 and 64 ODBC Data source Administration.我正在尝试为使用普遍数据库的应用程序创建链接服务器我设置了一切正确但我不断收到
Cannot initialize the data source object of OLE DB provider "MSDASQL"
我尝试了 32 和 64 ODBC 数据源管理。 Here is SQL Server version infomation这是 SQL Server 版本信息
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)
Jul 9 2008 14:17:44
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
i tried a lot trying to fix this but the test fails.我尝试了很多尝试解决此问题,但测试失败。 ODBC connection using
Pervasive ODBC Interface
tested and works great.使用
Pervasive ODBC Interface
的 ODBC 连接经过测试,效果很好。
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "serverName".
无法为链接服务器“serverName”初始化 OLE DB 提供程序“MSDASQL”的数据源对象。 OLE DB provider "MSDASQL" for linked server "serverName" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
链接服务器“serverName”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”。 (.Net SqlClient Data Provider)
(.Net SqlClient 数据提供者)
if you try to create the linked server using studio and the various menus, a small detail is not saved in the connection string, which is the database! 如果尝试使用studio和各种菜单创建链接服务器,则数据库中的连接字符串中不会保存一个小细节! (see last bit of the connection string)
(请参阅连接字符串的最后一位)
Try this:It works for me 试试这个:对我有用
EXEC master.dbo.sp_addlinkedserver @server='MYSQL',
@srvproduct='MySQL',
@provider='MSDASQL', @provstr='DRIVER={MySQL ODBC 5.1
Driver};SERVER=HOST;Port=3306;USER=uid;PASSWORD=pw;OPTION=3;DATABASE=mydb';
First I Downloaded the last ODBC Driver from: ODBC Driver Link and Installed it.首先,我从以下位置下载了最后一个 ODBC 驱动程序: ODBC 驱动程序链接并安装了它。
After in SQL Management Studio I inserted the code below:在 SQL Management Studio 之后,我插入了以下代码:
"I changed driver's description to: "MySQL: 8.0" and setting RPC to allow Remote Procedure Call if was important". “我将驱动程序的描述更改为:“MySQL:8.0”并将 RPC 设置为允许远程过程调用(如果很重要)”。
EXEC master.dbo.sp_addlinkedserver
@server = N'LKD_MYSQL',
@srvproduct=N'MySQL',
@provider=N'MSDASQL',
@provstr=N'Driver={MySQL ODBC 8.0 ANSI Driver};DATABASE=database;OPTION=3;PASSWORD=****;USER=user;SERVER=host'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LKD_MYSQL', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LKD_MYSQL', @locallogin = NULL , @useself = N'False'
GO
sample of select:选择样本:
select * from openquery(LKD_MYSQL,'select * from database.table')
We also facing the same kind of issue and resolved by changing mysql login password as it's using ;我们也遇到了同样的问题,并通过更改mysql登录密码来解决; in end of password, hope this will resolve your issue.
在密码末尾,希望这能解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.