2015-12-23 5 views
1

Я не могу подключиться к удаленному серверу DB2 с помощью Python. Вот что я сделал:Не удается подключиться к драйверу DB2 через Python: SQL1042C

  1. Создано virtualenv с Python 2.7.10 (на Mac OS X 10.11.1)
  2. установлен Ibm-дб с использованием sudo pip install ibm_db
  3. Побежал следующий код:

    import ibm_db ibm_db.connect("my_connection_string", "", "")

затем я получаю следующее сообщение об ошибке:

Exception: [IBM][CLI Driver] SQL1042C An unexpected system error occurred. SQLSTATE=58004 SQLCODE=-1042

Я работаю в течение нескольких часов и исследую различные решения. К сожалению, я не смог найти правильное руководство по настройке среды на Mac OS X + Python + DB2.

ответ

1

Вы пришли по инструкциям по установке здесь? https://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.swg.im.dbclient.python.doc/doc/t0054368.html

Необходимо, чтобы ваш драйвер ODBC DB2 был правильно установлен до того, как ваш код Python будет работать.

Эта проблема также может пролить свет: https://github.com/ibmdb/node-ibm_db/issues/34

+0

Да, я выполнил инструкции, и я также прочитал вопрос о GitHub. Однако это не решает мою проблему. Я беспокоюсь, что это относится к моему недавнему обновлению до OS X El Capitan. – chribsen

+0

Согласен. В этом случае виновником может стать новая функция защиты системы защиты целостности в El Capitan. Я не могу установить драйвер ODBC. – Raj

+0

Я попытался отключить защиту целостности системы. Однако, без везения. – chribsen

1

Мы способны успешно и подключение к БД устанавливается установить драйвер без каких-либо проблем.

Шаги: 1) повышена до OS X EI Capitan 2) Установить пип - Sudo пип установить 3) Установить IBM_DB - Sudo пип установить IBM_DB 4) Во время инсталляции, ниже ошибка была поражена

Ссылка из: /Users/roramana/Library/Python/2.7/lib/python/site-packages/ibm_db.so Причина: небезопасное использование относительного rpath libdb2.dylib в /Users/roramana/Library/Python/2.7/lib/ python/site-packages/ibm_db.so с ограниченным двоичным кодом

После отключения защиты целостности системы установка прошла нормально.

Из-за ошибки sql1042c, похоже, что вы сталкиваетесь с проблемой настройки среды. Вы можете попробовать установить DYLD_LIBRARY_PATH на путь, в котором вы извлекли драйвер odbc и cli.

Если проблема все еще сохраняется, пожалуйста, соберите db2 следы и поделиться с нами:

DB2TRC на -f trc.dmp

запустить REPRO

DB2TRC от

DB2TRC Flw TRC .dmp trc.flw

db2trc fmt trc.dmp trc.fmt

Поделитесь файлами trc.flw и trc.fmt.

1

Я смог воспроизвести ошибку 1042C на одном из компьютеров Mac.

Решение для него - установить DYLD_LIBRARY_PATH на clidriver/lib/icc. Я хотел бы предложить вам установить DYLD_LIBRARY_PATH как к clidriver/lib и clidriver/lib/icc Для Eg:

export DYLD_LIBRARY_PATH=/Library/Python/2.7/site-packages/ibm_db-2.0.6-py2.7-macosx-10.10-intel.egg/clidriver/lib:/Library/Python/2.7/site-packages/ibm_db-2.0.6-py2.7-macosx-10.10-intel.egg/clidriver/lib/icc 

У меня есть Python 2.7 установлен в моей машине и easy_install/пип установить авто загруженный clidriver в /Library/Python/2.7/site-packages/ibm_db-2.0.6-py2.7-macosx-10.10-intel.egg/ каталог.

Просьба установить DYLD_LIBRARY_PATH в соответствии с вашей средой. Пожалуйста, сообщите нам, решит ли он вашу проблему.

Смежные вопросы