从 sql 服务器链接服务器连接到 Sphinx
Connecting to Sphinx from sql server 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
我收到以下异常:
Title: Microsoft SQL Server Management Studio
The test connection to the linked server failed.
Additional information
The OLE DB providcer "MSDASQL" for linked server "SPHINX_SEARCH" reported an error. The provider did not give any information about the error.
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "SPHINX_SEARCH". (Microsoft SQL Server, Error: 7399).
虽然从 MySQL 连接到 Sphinx 正在通过以下命令工作:
mysql -h 127.0.0.1 -P 9306
有什么建议吗?
Sphinx 版本:3.0.3,SQL服务器版本:2014,MySQL版本:5.6
如果您的 MSDASQL 提供程序在此处列出并且安装正确,您是否在 "Server Objects > Linked Servers > Providers" 下检查 SQL Server Management Studio?
您也可以尝试打开此提供程序的属性并检查那里的 "allow inprocess" 选项,然后再次检查是否可以连接。
您可能还想查看此 link 以了解您可以尝试的更多内容:
已使用 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 客户端相关的错误。
我正在尝试从 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
我收到以下异常:
Title: Microsoft SQL Server Management Studio
The test connection to the linked server failed.
Additional information
The OLE DB providcer "MSDASQL" for linked server "SPHINX_SEARCH" reported an error. The provider did not give any information about the error. Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "SPHINX_SEARCH". (Microsoft SQL Server, Error: 7399).
虽然从 MySQL 连接到 Sphinx 正在通过以下命令工作:
mysql -h 127.0.0.1 -P 9306
有什么建议吗?
Sphinx 版本:3.0.3,SQL服务器版本:2014,MySQL版本:5.6
如果您的 MSDASQL 提供程序在此处列出并且安装正确,您是否在 "Server Objects > Linked Servers > Providers" 下检查 SQL Server Management Studio?
您也可以尝试打开此提供程序的属性并检查那里的 "allow inprocess" 选项,然后再次检查是否可以连接。
您可能还想查看此 link 以了解您可以尝试的更多内容:
已使用 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 客户端相关的错误。