首页 > 解决方案 > 如何使用 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                                  |
|                                       |
+---------------------------------------+

我究竟做错了什么?任何建议表示赞赏。

标签: sql-serverunixsphinxfreetdsunixodbc

解决方案


愿这对某人有所帮助。我使用的 sphinxsearch 版本是从 ubuntu repos --version 2.2.11 下载的,我从网站下载最新版本 --version 3.1.1 (commit 612d99f),它支持 ODBC 类型。现在一切正常!谢谢!


推荐阅读