Я пытаюсь подключиться к существующему серверу баз данных Sybase Advantage через драйвер ODBC в ЛОКАЛЬНОМ экземпляре. В настоящее время у меня установлены unixodbc, unixodbc-dev и unixodbc-bin.
Когда я пытаюсь сделать следующее:
import pyodbc
str='DRIVER={Advantage ODBC Driver};DataDirectory=/var/lib/advantage/.../dbfile.add;User ID=...;Password=...;ServerTypes=1;'
connection = pyodbc.connect(str)
Я получаю следующую ошибку:
pyodbc.Error: ("IM002", "[IM002] [unixODBC] [Диспетчер драйверов] Имя источника данных не найдено, и драйвер по умолчанию не указан (0) (SQLDriverConnect)')
Вот мой файл /etc/odbc.ini (и /etc/odbcinst.ini):
;
; odbc.ini
;
[ODBC Data Sources]
Odie = Advantage ODBC Driver
[Odie]
Driver=/opt/ads/odbc/redistribute/libadsodbc.so.11.10.0.24
DataDirectory=/var/lib/advantage/.../dbfile.add
Description=Advantage ODBC driver
Rows=False
MemoBlockSize=64
DefaultType=Advantage
MaxTableCloseCache=0
LOCKING=Record
CharSet=OEM
ADVANTAGELOCKING=OFF
ServerTypes=1
TableExtension=
Я вижу здесь три возможных проблемы: либо моя строка подключения неверна, либо мой файл odbc.ini настроен неправильно, либо мой unixodbc не перезагрузил odbc.ini с тех пор, как я его изменил (если есть такая вещь). Я попробовал решение, предложенное здесь, безрезультатно.
Спасибо за вашу помощь!
isql
? Попробуйте подключиться с помощьюisql
verbose:isql -v dsn username password
и посмотрите журнал. - person FlipperPA   schedule 23.04.2016[01000][unixODBC][Driver Manager]Can't open lib '/opt/ads/odbc/redistribute/libadsodbc.so.11.10.0.24
Я попытался сделать то же самое с sudo, но без изменений. Я проверил наличие проблем с разрешениями; все родительские папки имеют разрешения rwxr-xr-x, а указанный файл имеет права rwxr-xr--. Я также попытался проверить, был ли путь неправильным, выполнивif [ -f path ]
, и без sudo он вернул true. :почесать мою голову: - person Philippe Hebert   schedule 23.04.2016libadsodbc.so.11.10.0.24
в/
, сделать его 777 и изменить конфигурацию, чтобы она указывала на файл в/
? Затем вы можете проверить, является ли это проблемой с разрешениями, и перемещать файл вниз по дереву папок по одному шагу за раз. Некрасиво, но отладка нормально есть! :) - person FlipperPA   schedule 23.04.2016user@computer:/$ ls -la
дал следующую запись:-rwxrwxrwx 1 root root 338030 Apr 23 08:59 libadsodbc.so.11.10.0.24
- person Philippe Hebert   schedule 23.04.2016ldd /opt/ads/odbc/redistribute/libadsodbc.so.11.10.0.24
, чтобы увидеть, отсутствуют ли какие-либо зависимости библиотеки? - person FlipperPA   schedule 24.04.2016linux-gate.so.1 => (0xf7713000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74f9000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf74dd000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf74d7000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7491000) libace.so.11.10 => /usr/lib32/libace.so.11.10 (0xf72d7000) /lib/ld-linux.so.2 (0xf7716000)
- person Philippe Hebert   schedule 24.04.2016