Недоступная база данных в комбинации Sphinx + UnixODBC + Firebird

Я пытаюсь использовать Sphinx Search в Firebird через UnixODBC. Все компоненты по отдельности работают нормально: Sphinx проходит тесты с образцами MySQL, а ODBC подключается к файлу .fdb firebird.

Но если я попытаюсь подключить Sphinx к ODBC, я получаю такую ​​ошибку индексации:

ОШИБКА: индекс 'fb': sql_connect: [unixODBC] [драйвер ODBC Firebird] недоступная база данных (DSN = odbc: //: *** @: 0 /).

Вот часть моего sphinx.conf:

source src_fb
{
  type=odbc

  odbc_dsn=Driver=/usr/lib/libOdbcFb.so;Dbq=localhost:/var/lib/firebird/2.5/data/employee.fdb;Uid=SYSDBA;Pwd=

  sql_query     = \
  SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
  FROM documents
}

.fdb - это тот же файл, к которому подключается ODBC.


person KOHTPOJIEP    schedule 22.01.2017    source источник
comment
Используете ли вы одну и ту же строку подключения при изолированном тестировании ODBC?   -  person Mark Rotteveel    schedule 27.01.2017
comment
Мне они кажутся идентичными, но очевидно, что строка odbc_dsn неверна.   -  person KOHTPOJIEP    schedule 28.01.2017
comment
Может быть Dbq против Dbname. Свойства AFAIK после Driver зависят от драйвера, но я никогда не использую ODBC, поэтому я не совсем уверен.   -  person Mark Rotteveel    schedule 28.01.2017


Ответы (1)


Вот решение: в sphinx.conf я изменил только одну строку: odbc_dsn = DSN = employee

Итак, теперь Sphinx берет все необходимые данные из файлов конфигурации ODBC.

База данных из odbc.ini:

[employee]
Description = Firebird
Driver = Firebird
Dbname = localhost:/var/lib/firebird/2.5/data/employee.fdb
User = SYSDBA
Password =
Role =
CharacterSet =
ReadOnly = No
NoWait = No

И конфиги драйвера из odbcinst.ini:

[Firebird]
Description = Firebird ODBC Driver
Driver = /usr/lib/libOdbcFb.so
Threading = 1
FileUsage = 1
CPTimeout =
CPReuse =
person KOHTPOJIEP    schedule 28.01.2017