Подключение к Sphinx со связанного сервера sql server - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь подключиться к Sphinx из SQL Server Management Studio в качестве связанного сервера. Я попробовал следующий запрос:

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

Не удалось выполнить тестовое подключение к связанному серверу.

Дополнительная информация

Поставщик OLE DB "MSDASQL" для связанного сервера "SPHINX_SEARCH" сообщил об ошибке. Поставщик не предоставил никакой информации об ошибке. Невозможно инициализировать объект источника данных поставщика OLE DB "MSDASQL" для связанного сервера "SPHINX_SEARCH". (Microsoft SQL Server, ошибка: 7399).

При подключении к Sphinx из MySQL работает с помощью следующей команды:

mysql -h 127.0.0.1 -P 9306

Есть предложения?


Версия Sphinx: 3.0.3, версия сервера SQL: 2014, версия MySQL: 5.6

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Протестировано с 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 - имя системного DSN, установленное в ODBC Administrator.

В sphinx.conf вам нужно установить mysql_version_string на 5.1.1 (или что-то большее, чем 4.1.1), чтобы заменить текущую версию демона. В противном случае драйвер ODBC откажется работать с демоном searchd (поскольку видит версию сервера слишком старой).

Обновление на основе комментариев

Проблема была решена после установки последней версии Sphinx 3.1.1. В выпуске 3.0.3 была ошибка, связанная с клиентом MySQL.

0 голосов
/ 08 ноября 2018

Проверяли ли вы в SQL Server Management Studio в разделе «Объекты сервера> Связанные серверы> Провайдеры», указан ли здесь ваш провайдер MSDASQL и правильно ли он установлен?

Также вы можете попытаться открыть свойства этого провайдера и проверить там параметр «allow inprocess» и еще раз проверить, можете ли вы подключиться.

Вы также можете проверить эту ссылку, чтобы узнать, что еще можно попробовать:

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

...