SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC] [Диспетчер драйверов] Не удается открыть библиотеку ‘IBMDB2’: файл не найден

#php #db2 #odbc #db2-400

#php #db2 #odbc #db2-400

Вопрос:

Я пытаюсь подключиться к базе данных db2, используя приложение symfony php, через драйвер ODBC и установленный драйвер db2 (пакет драйверов IBM Data Server версии 11.5). Я использую MAC OS 10.15 CATALINA с APACHE, а PHP переустановлен с помощью brew.

Я застрял на этой ошибке:

SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC] [Диспетчер драйверов] Не удается открыть библиотеку ‘IBMDB2’: файл не найден

Где IBMDB2 ссылается на DSN моего драйвера odbc, связанного с драйвером, установленным на /Applications/dsdriver/lib/libdb2.dylib

Не могли бы вы, пожалуйста, помочь мне решить эту ошибку «файл не найден» (конечно, файл существует в /Applications/dsdriver/lib/libdb2.dylib)?

Это мой файл /Library/ODBC/odbc.ini:

 [ODBC Data Sources]
IBMDB2 = IBM i Access ODBC Driver

[IBMDB2]
Driver = /Applications/dsdriver/lib/libdb2.dylib
 

Это мой файл /Library/ODBC/odbcinst.ini:

 [IBM i Access ODBC Driver]

Description=IBM i Access ODBC Driver

Driver=/Applications/dsdriver/lib/libdb2o.dylib

Setup=/Applications/dsdriver/lib/libdb2o.dylib
 

Это результат выполнения команды «env»

 TMPDIR=/var/folders/8_/l5_n27ds14ndr7tmw0dg97jr0000gn/T/

XPC_FLAGS=0x0

LaunchInstanceID=57ABF727-826C-4D96-9032-BDBB8637FFD6

TERM=xterm-256color

LANG=fr_FR.UTF-8

SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.E2JaUTZ9TW/Listeners

SECURITYSESSIONID=186a6

XPC_SERVICE_NAME=0

TERM_PROGRAM=Apple_Terminal

TERM_PROGRAM_VERSION=433

TERM_SESSION_ID=AA52FB63-601C-4003-8275-6C3E365531DD

SHELL=/bin/zsh

HOME=/Users/yornletard

LOGNAME=yornletard

USER=yornletard

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

SHLVL=1

PWD=/Users/yornletard

OLDPWD=/Users/yornletard

ODBCINI=/Library/ODBC/odbc.ini

ODBCINSTINI=/Library/ODBC/odbcinst.ini

_=/usr/bin/env
 

Комментарии:

1. пожалуйста, отредактируйте свой вопрос, чтобы указать полную версию IBM i access установленного вами продукта. Можете ли вы также подтвердить, что целевая база данных Db2 находится на AS / 400 (i-series)?

2. Я установил «IBM Data Server Driver Package v11.5». База данных DB2 полностью работоспособна, поскольку я получаю к ней доступ из того же приложения symfony, установленного в ОС ubuntu.

3. Пожалуйста, ответьте на вопрос: подтвердите, что Db2-database работает на AS / 400 (i series). Это означает, что база данных находится на as / 400. Вы не можете смешивать свои драйверы (между пакетом драйверов версии 11.5 и продуктом IBM i access).

4. Я подтверждаю, что база данных db2 работает на AS / 400

5. Вам нужно использовать только файлы из IBM i access продукта с unixODBC. В INI-файлах не ссылайтесь на файлы из драйвера IBM data server (поскольку для подключения к AS / 400 им требуется файл лицензии Db2-connect), который IBM i access не нужен библиотекам. Ваша конфигурация недопустима.

Ответ №1:

Как сказал мне мао, я смог подключиться из моей mac os к базе данных db2 с помощью продукта «IBM i access». Я использовал неправильный драйвер пакета. Благодаря ему

Я загружаю продукт Ibm i access: https://www.ibm.com/support/pages/ibm-i-access-client-solutions

Затем устанавливается и автоматически настраивается с помощью встроенного скрипта (требуется, чтобы unixODBC был установлен с brew)

 /Library/IBMiAccess/register_driver