sql-server - 如何使用 freetds 为 sphinx 配置 unixODBC 驱动程序。错误:来源:未知类型“odbc”;跳过
问题描述
我正在为 Linux 设置 Sphinxsearch,我也有远程 MSSQL Server。我已经根据文档安装了 unixODBC 和 freetds。
odbcinst.ini 文件:
[FreeTDS]
Description=v0.63 with protocol v7.3
Driver = /usr/local/lib/libtdsodbc.so
FileUsage = 1
CPTimeout = 5
odbc.ini 文件:
[Sphinx]
Driver = FreeTDS
Description = MS-SQL
Trace = No
#Servername = mssql02
Server = XX.XX.XX
Port = 1433
Database = DBNAME
[Default]
Driver = /usr/local/lib/libtdsodbc.so
freetds.conf 文件:
[mssql02]
host = XX.XX.XX
port = 1433
tds version = 7.3
instance = MSSQL02
最后但并非最不重要的 sphinx.conf 文件:
source test
{
type = odbc
sql_host = XX.XX.XX
sql_user = USERNAME
sql_pass = PASS
sql_db = DBNAME
sql_port = 1433
odbc_dsn = DSN=Sphinx;Driver={/usr/local/etc/odbc.ini};Uid=USERNAME;Pwd=PASS
...more_config...
}
使用以下命令时
indexer --all
我收到以下消息:
错误:源“测试”:未知类型“odbc”;跳过。
不过 isql 命令工作正常:
$ isql Sphinx LOGIN PASS
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
我究竟做错了什么?任何建议表示赞赏。
解决方案
愿这对某人有所帮助。我使用的 sphinxsearch 版本是从 ubuntu repos --version 2.2.11 下载的,我从网站下载最新版本 --version 3.1.1 (commit 612d99f),它支持 ODBC 类型。现在一切正常!谢谢!
推荐阅读
- android - 更新 Kotlin 版本后出现 Kapt 错误:java.lang.NoSuchFieldError: CONTENT_ROOTS
- java - 如何使用for循环循环二维数组?
- php - Laravel 5 日程安排问题 - php artisan schedule:run 有效,但实际日程安排无效
- javascript - expressJs 中的调试错误
- apache-spark - 使用 Spark 连接到 Greenplum 以读取数据时要使用的 jar 和驱动程序类是什么?
- sapui5 - 表的 getItems() 方法最多返回 20 行
- java - 如何以特定顺序关闭演员并能够在死前发送消息?
- amazon-web-services - Cloudformation 是否支持在 API Gateway 中使用代理集成选项?
- angular - 强制 FormControl 更改(无需用户干预)以使用 .distinctUntilChanged 触发 Observable 更改
- r - R:如何使用带有省略号的复制()...?