从SQL Server链接服务器连接到Sphinx

时间:2018-10-31 09:45:02

标签: sql-server ssms sql-server-2014 sphinx linked-server

我正在尝试从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

2 个答案:

答案 0 :(得分: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客户端相关的错误。

答案 1 :(得分:2)

如果您的MSDASQL提供程序已在此处列出并正确安装,您是否在SQL Server Management Studio中的“服务器对象>链接的服务器>提供程序”下进行了检查?

此外,您可以尝试打开此提供程序的属性,并在此处选中“允许进程内”选项,然后再次检查是否可以连接。

您可能还需要检查此链接,以尝试进一步的操作:

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