0

我以前从未使用过 ODBC。我一直都是手动连接。现在我正在尝试使用 OTL,但我无法配置它。

我发现由于某种原因它没有读取我在 /etc/odbc* 中的文件

它正在从我的主管那里读取这些文件 (.odbc.ini .odbinst.ini)

~/.odbc.ini:

[localhost]
Driver       = MyODBC Driver
Description  = MyODBC 
SERVER       = localhost
USER         = root
Password     = mypass
Database     = mydb
SOCKET       =

~/.odbcinst.ini:

[ODBC Drivers]
MyODBC Driver = Installed

[MyODBC Driver]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup  = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so

这就是我尝试连接时发生的情况

con_.rlogon("DSN=localhost");

[unixODBC][驱动管理器]找不到数据源名称,也没有指定默认驱动

4

1 回答 1

4

首先,odbcinst.ini 文件的格式不是 unixODBC,而是 iODBC。您不需要 [ODBC 驱动程序] 部分。

其次,unixODBC 默认不在~/.odbcinst.ini 中查找,它通常在/etc/odbcinst.ini 或/usr/local/etc/odbcinst.ini 中查找。您可以使用 odbcinst -j 找出 unixODBC 在哪里查找文件:

$ odbcinst -j
unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/martin/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

如果您坚持使用 ~/odbcinst.ini 来定义您的驱动程序,您需要通过将 ODBCINSTINI 环境变量指向您的文件来告诉 unixODBC。

于 2014-09-16T07:53:41.650 回答