Я никогда не использовал 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] [Driver Manager] Имя источника данных не найдено, и драйвер по умолчанию не указан
Во-первых, этот формат файла odbcinst.ini — это не unixODBC, а iODBC. Вам не нужен раздел [Драйверы ODBC].
Во-вторых, unixODBC не выглядит по умолчанию в ~ / .odbcinst.ini, он обычно выглядит в /etc/odbcinst.ini или /usr/local/etc/odbcinst.ini. Вы можете узнать, где unixODBC ищет файлы, используя odbcinst -j:
$ 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 для определения своих драйверов, вам нужно сообщить об этом unixODBC, указав переменную среды ODBCINSTINI в своем файле.