我之前从未使用过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] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序
答案 0 :(得分:2)
首先,odbcinst.ini文件的格式不是unixODBC,而是iODBC。您不需要[ODBC Drivers]部分。
其次,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。