无法在组合中的数据库Sphinx + UnixODBC +火鸟
问题描述:
我想通过UnixODBC在Firebird上使用Sphinx搜索。所有组件单独工作的优良:斯芬克斯通过与MySQL的样品测试和ODBC连接到Firebird的是.fdb无法在组合中的数据库Sphinx + UnixODBC +火鸟
但是,如果我尝试狮身人面像连接到ODBC,我得到这个索引错误:
ERROR: index 'fb': sql_connect: [unixODBC][ODBC Firebird Driver]unavailable database (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连接到的同一文件。
答
这里是解决方案: sphinx.conf中我改变只有一个字符串: odbc_dsn = DSN =员工
所以现在需要的狮身人面像从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 CONFIGS:
[Firebird]
Description = Firebird ODBC Driver
Driver = /usr/lib/libOdbcFb.so
Threading = 1
FileUsage = 1
CPTimeout =
CPReuse =
你在隔离测试ODBC时使用相同的连接字符串? –
他们似乎与我相同,但显然,odbc_dsn行无效。 – KOHTPOJIEP
可能是'Dbq'和'Dbname'。 'Driver'后的AFAIK属性是特定于驱动程序的,但我从不使用ODBC,所以我不太确定。 –