我正在尝试从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
答案 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中的“服务器对象>链接的服务器>提供程序”下进行了检查?
此外,您可以尝试打开此提供程序的属性,并在此处选中“允许进程内”选项,然后再次检查是否可以连接。
您可能还需要检查此链接,以尝试进一步的操作: