从sql server链接服务器连接到Sphinx

问题描述 投票:6回答:2

我试图从SQL Server Management Studio连接到Sphinx作为链接服务器。我尝试了以下查询:

EXEC master.dbo.sp_addlinkedserver @server=N'SPHINX_SEARCH', @srvproduct=N'', @provider=N'MSDASQL', @provstr=N'Driver={MySQL ODBC 8.0 ANSI Driver};Server=127.0.0.1;Port=9306,charset=UTF8;User=;Password=;OPTION=3'
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SPHINX', @useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO

我得到以下例外:

标题:Microsoft SQL Server Management Studio

与链接服务器的测试连接失败。

附加信息

链接服务器“SPHINX_SEARCH”的OLE DB提供程序“MSDASQL”报告错误。提供商未提供有关错误的任何信息。无法为链接服务器“SPHINX_SEARCH”初始化OLE DB提供程序“MSDASQL”的数据源对象。 (Microsoft SQL Server,错误:7399)。

从MySQL连接到Sphinx时,通过以下命令工作:

mysql -h 127.0.0.1 -P 9306

有什么建议?


Sphinx版本:3.0.3,SQL Server版本:2014,MySQL版本:5.6

sql-server ssms sql-server-2014 sphinx linked-server
2个回答
3
投票

与Manticore一起测试,但也应该与Sphinx一起使用:

EXEC master.dbo.sp_addlinkedserver @server = N'Search',
@srvproduct=N'manticore', @provider=N'MSDASQL', @datasrc=N'manticore',
@provstr=N'Driver={MySQL ODBC 8.0 ANSI Driver};
Server=127.0.0.1;Port=9306,charset=UTF8;User=;Password=;'

manticore是ODBC管理员中设置的系统DSN名称。

在sphinx.conf中,您需要将mysql_version_string设置为5.1.1(或大于4.1.1的任何值)以替换实际的守护程序版本。否则ODBC驱动程序将拒绝使用searchd守护程序(因为将服务器版本视为太旧)。

根据评论更新

安装最新的Sphinx版本3.1.1后,问题得以解决。版本3.0.3中有一些与MySQL客户端相关的错误。


2
投票

如果此处列出了MSDASQL Provider并且安装正确,您是否在“服务器对象>链接服务器>提供程序”下签入SQL Server Management Studio?

您也可以尝试打开此提供程序的属性并检查其中的“allow inprocess”选项,然后再次检查是否可以连接。

您也可以查看此链接以获取更多可以尝试的内容:

https://support.microsoft.com/en-us/help/2450479/you-get-7399-and-7300-error-messages-when-accessing-a-linked-server

© www.soinside.com 2019 - 2024. All rights reserved.