我试图从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
与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客户端相关的错误。
如果此处列出了MSDASQL Provider并且安装正确,您是否在“服务器对象>链接服务器>提供程序”下签入SQL Server Management Studio?
您也可以尝试打开此提供程序的属性并检查其中的“allow inprocess”选项,然后再次检查是否可以连接。
您也可以查看此链接以获取更多可以尝试的内容: