SQLCODE = -30081 Невозможно соединиться с базой данных IBM DB2 с помощью python - PullRequest
0 голосов
/ 25 марта 2019

Я могу нормально подключиться к DB2 с помощью моего приложения TOAD, но мне нужно иметь возможность подключаться в Python для создания некоторых автоматических отчетов.

Я установил библиотеку ibm_db и пытаюсьследовать инструкциям, но я получаю сообщение об ошибке SQLCODE=-30081.

import ibm_db

conn_str = 'database=XXXX;hostname=XXXX.host.com;port=11111;protocol=tcpip;uid=user;pwd=password'
conn = ibm_db_conn = ibm_db.connect(conn_str,'','')

Traceback:

Traceback (most recent call last):
  File "C:/Users/username/PycharmProjects/Report/MAIN/MAIN.py", line 4, in <module>
    conn = ibm_db_conn = ibm_db.connect(conn_str,'','')
 SQLCODE=-30081

Поиск -30081 не очень полезен, так как может быть вызван спискомвещей.

Я где-то читал, что, возможно, ibm_db поддерживается только на Python 3.4, и я использую Python 3.6, однако сейчас я не могу установить Python 3.4 на свой рабочий ПК, поскольку его администратор заблокирован.

Обновление:

Протестированное соединение с использованием командной строки с двумя различными вариантами соединения, доступными для ibm_db.

Оба типа соединения:

import ibm_db


conn_str = 'database=XXXX;hostname=111.111.111.111;port=11111;protocol=tcpip;uid=username;pwd=password'

try:
    conn = ibm_db.connect(conn_str, '', '')
except:
    print("no connection:", ibm_db.conn_errormsg())
else:
    print("The 1st connection was successful")

try:
    conn = ibm_db.connect('XXXX', 'username', 'password')
except:
    print("no connection:", ibm_db.conn_errormsg())
else:
    print("The 2nd connection was successful")

Ошибка:

C:\Users\username\Desktop\Python 3.6.2>python test.py
no connection: [IBM][CLI Driver] SQL30081N  A communication error has been detected. Communication protocol being used: "TCP/IP".  Communication API being used: "SOCKETS".  Location where the error was detected: "111.111.111.111".  Communica SQLCODE=-30081etecting the error: "recv".  Protocol specific error code(s): "10054", "*", "0".  SQLSTATE=08001
no connection: [IBM][CLI Driver] SQL30082N  Security processing failed with reason "19" ("USERID DISABLED or RESTRICTED" SQLCODE=-30082001

Любое руководство будет оценено.

...