简体   繁体   English

链接服务器无法初始化 OLE DB 提供程序的数据源对象

[英]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.

相关问题 无法为链接服务器初始化OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”的数据源对象 - Cannot initialize the data source object of OLE DB provider “Microsoft.ACE.OLEDB.12.0” for linked server 错误:“OLE DB提供程序”MSDASQL“用于链接服务器”(null)“返回消息”[Microsoft] [ODBC驱动程序管理器]未找到数据源名称...“ - Error: “OLE DB provider ”MSDASQL“ for linked server ”(null)“ returned message ”[Microsoft][ODBC Driver Manager] Data source name not found …" 错误:无法从OLE DB提供程序“ADsDSOObject”获取链接服务器“ADSI”的行 - Error : Cannot fetch a row from OLE DB provider “ADsDSOObject” for linked server “ADSI” 使用链接服务器返回错误-“无法获取OLE DB提供程序的架构行集” - Using linked server returns error - “Cannot obtain the schema rowset for OLE DB provider” 无法为链接服务器创建 OLE DB 提供程序 Microsoft.Jet.OLEDB.4.0 的实例 null - Cannot create an instance of OLE DB provider Microsoft.Jet.OLEDB.4.0 for linked server null 链接服务器的OLE DB提供程序为列提供了不一致的元数据 - The OLE DB provider for linked server supplied inconsistent metadata for a column 链接服务器的OLe数据库提供程序“SQLNCLI”无法启动分布式事务 - OLe DB provider “SQLNCLI” for linked server was unable to begin a distributed transaction 链接服务器“(null)”的OLE DB提供程序“ MSDASQL”报告错误 - The OLE DB provider “MSDASQL” for linked server “(null)” reported an error 链接服务器的OLE DB提供程序报告了架构版本错误 - OLE DB provider for linked server reported a change in schema version Error 无法从链接服务器的OLE DB提供程序“ MSDASQL”获取列“ [MSDASQL] .LONG_DESCRIPTION”的当前行值:-NETSUITE - Cannot get the current row value of column “[MSDASQL].LONG_DESCRIPTION” from OLE DB provider “MSDASQL” for linked server :--NETSUITE
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM