Python: невозможно подключиться к каталогизированной базе данных db2 (ibm_db)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: невозможно подключиться к каталогизированной базе данных db2 (ibm_db)

Сообщение Anonymous »

Система

Код: Выделить всё

OS: Fedora 40
Kernel: 6.10.6-200
Installed DB2 client: v11.5.9_linuxx64_client.tar.gz
python 3.12.5
ibm_db 3.2.3
Переменные среды установлены

Код: Выделить всё

$DB2INSTANCE     db2inst1
$DB2_HOME        /home/db2inst1/sqllib
$IBM_DB_HOME     /home/db2inst1/sqllib
$LD_LIBRARY_PATH /home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32
Я занес в каталог соединение

Код: Выделить всё

db2 "catalog tcpip node  remote  server 
 remote_instance "
db2 "catalog database  as  at node  authentication SERVER_ENCRYPT"
Тест: я могу подключиться через db2 к
Вот и часть Python
Я следовал инструкциям https://www.ibm.com/docs/en/db2/11.1?to ... ase-server

Код: Выделить всё

import ibm_db
conn = ibm_db.connect("DATABASE=;HOSTNAME=;PORT=;PROTOCOL=TCPIP;UID=;PWD=", "", "")
Это решение работает, но я хочу использовать каталогизированное соединение

Код: Выделить всё

import ibm_db
conn = ibm_db.connect("", "", "")
Теперь я получаю следующую ошибку

Код: Выделить всё

Exception: [IBM][CLI Driver] SQL1531N  The connection failed because the name specified with the DSN connection string keyword could not be found in either the db2dsdriver.cfg configuration file or the db2cli.ini configuration file.  Data source name specified in the connection string: "". SQLCODE=-1531
Как это исправить?
(Я уже удалил ibm_db и переустановил его)

Дополнение 1
Спасибо @mao
Нет хотите создать и изменить db2dsdriver.cfg вручную, поскольку другие приложения используют каталогизированные соединения db2. Поэтому редактировать информацию о соединении дважды нецелесообразно.
Но можно создать файл db2dsdriver.cfg с помощью команды db2dsdcfgfill.
Чтобы сгенерировать файл db2dsdriver.cfg, я выполнил следующие инструкции:
https://www.ibm.com/docs/en/db2/11.5?topic=file-data -server-driver-configuration-location
https://www.ibm.com/docs/en/db2/11.5?to ... figuration
https://www.ibm .com/docs/en/db2/11.5?topic=dsdcf-copying-existing-database-directory-information-into-db2dsdriver-файл-конфигурации

Код: Выделить всё

db2dsdcfgfill -i db2inst1 -o /home/db2inst1/sqllib/cfg

SQL0000W  Die Anweisung konnte fehlerfrei verarbeitet werden.
Когда я ищу файл db2dsdriver, я получаю только db2dsdriver.xml и db2dsdriver.cfg.sample, но не db2dsdriver.cfg >.
Я просмотрел три файла db2dsdriver.xml, но не нашел своих каталогизированных соединений.

Код: Выделить всё

find / -type f -name "db2dsdriver*" 2>/dev/null

/home//.local/lib/python3.12/site-packages/clidriver/cfg/db2dsdriver.cfg.sample
/home//.local/lib/python3.12/site-packages/clidriver/cfg/db2dsdriver.xsd
/home//git/
/.venv/lib/python3.12/site-packages/clidriver/cfg/db2dsdriver.cfg.sample
/home//git//.venv/lib/python3.12/site-packages/clidriver/cfg/db2dsdriver.xsd
/opt/ibm/db2/V11.5/cfg/db2dsdriver.cfg.sample
/opt/ibm/db2/V11.5/cfg/db2dsdriver.xsd
Что я сделал не так?

Дополнение 2Я выполнил команду от пользователя db2inst1 и файл был создан

Код: Выделить всё

db2inst1@:~$ db2dsdcfgfill -i db2inst1

SQL1535I  Das Dienstprogramm db2dsdcfgfill hat die Konfigurationsdatei db2dsdriver.cfg erfolgreich erstellt.
Следующий файл был создан /home/db2inst1/sqllib/cfg/db2dsdriver.cfg
Затем я изменил группу и разрешения в файле, чтобы я мог использовать команду db2dsdcfgfill со своим пользователем.
После этого мне пришлось создать символическую ссылку

Код: Выделить всё

ln -s /home/db2inst1/sqllib/cfg/db2dsdriver.cfg /home//git/
/.venv/lib/python3.12/site-packages/clidriver/cfg/db2dsdriver.cfg
Теперь я могу подключиться к Python через

Код: Выделить всё

import ibm_db
conn = ibm_db.connect("", "", "
")
Это решение работает, но не очень красиво. Есть ли более элегантный способ?


Подробнее здесь: https://stackoverflow.com/questions/790 ... ase-ibm-db
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»