Подключение к DB2 с помощью pyodbc в Linux - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь соединить DB2 с pyodbc в Linux и получаю сообщение об ошибке

"('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'IBM DB2 ODBC Driver' : file not found (0) (SQLDriverConnect)")## Heading ##

Требуется ли какая-либо установка или мне не хватает пути?

# Create a connection object
cnxn = pyodbc.connect(
    'Driver={IBM DB2 ODBC Driver}; '
    'Hostname=nn.nn.nnn.nnn; '
    'Port=50000; '
    'Protocol=TCPIP; '
    'Database=myDB; '
    'CurrentSchema=myschema; '
    'UID=user1; '
    'PWD =test1;'
    )

Я пыталсянастроить, перейдя по ссылке https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.apdv.cli.doc/doc/t0061216.html

Я сделал yum установку unixODBC

Но я не смог найти путь, по которому был установлен libdb2.so для настройки odbcinst.int, как указано здесь https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.apdv.cli.doc/doc/t0061216.html

Каков путь для libdb2.so?

1 Ответ

0 голосов
/ 26 августа 2018

Driver-manager (unixODBC) не предоставляет драйвер для db2 rdbms. Обычно вы будете использовать Db2-драйвер, поставляемый IBM, который работает с unixODBC.

Если ваш Db2-сервер удален от Linux, вам нужно отдельно установить драйвер Db2 и настроить его.

Если ваш Db2-сервер уже установлен локально в Linux, то он уже включает в себя локальный Db2-клиент, а библиотеки являются символическими ссылками из домашнего каталога экземпляра Db2 sqllib / lib64 (например, / home / db2inst1 / sqllib /). lib64 будет содержать символические ссылки на соответствующие библиотеки, если ваш экземпляр Db2 называется "db2inst1"). В этом случае вам не нужно ничего устанавливать.

В противном случае существуют различные поставляемые IBM Db2-клиенты, поэтому вам нужно выбрать правильный, который зависит как от вашей платформы Db2-сервера, так и от ваших потребностей в программировании (разные места для разных драйверов). Есть также сторонние драйверы, не упомянутые здесь. Смотрите здесь для типов клиентов Db2: https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.5.0/com.ibm.swg.im.dbclient.install.doc/doc/c0022612.html

[1] Если ваш удаленный Db2-сервер работает под управлением Linux / Unix / Windows / zLinux, загрузите драйвер IBM с Passport Advantage (выберите последнюю версию драйвера для вашей версии Db2-сервера). Ваш администратор базы данных Db2 (если он у вас есть) также должен иметь устанавливаемую копию, хотя всегда разумно загружать последнюю версию с веб-сайта Passport Advantage, если у вас есть такой доступ.

Если ваш Db2-сервер работает на Z / OS или i-Series AND , в вашей компании уже установлен и настроен сервер шлюза Db2-connect, то вы можете использовать тот же драйвер, что и [1] выше. Шлюз Db2-connect - это отдельное имя хоста, которое выполняет преобразование протокола (при необходимости) и позволяет упростить лицензирование по цене.

Если ваш удаленный Db2-сервер работает на i-Series (ранее OS / 400) и ваша компания не использует шлюз Db2-connect, спросите у вашего администратора i Admin правильный драйвер и установите его на Linux. Для i-Series вы можете использовать драйвер от IBM или стороннего производителя, если он поддерживает ODBC / CLI в Linux для вашей версии и разрядности.

Если ваш Db2-сервер работает в Z / OS, а ваша компания не использует шлюз Db2-connect (т.е. вместо этого вы подключаетесь напрямую из Linux к Db2-for-Z / OS), тогда вы потребуется использовать тот же драйвер, что и в [1], но дополнительно применить подходящий файл лицензии для вашего драйвера Linux Db2. Ваш админ должен знать детали.

...