Некоторое время я искал, как попробовать подключение к AS400 с помощью Laravel 7.
Я использую этот пакет: https://github.com/cooperl22/laravel-ibmi
Я добавляю laravel -ibmi в ваш composer. json файл:
"require": {
"cooperl/laravel-ibmi": "^7.0"
}
Используйте composer для установки этого пакета.
$ composer update
Запустить командная строка из root моего проекта:
$ php artisan vendor:publish
И установить учетные данные в .env
DB_CONNECTION=ibmi
DB_HOST=********
DB_PORT=********
DB_DATABASE=********
DB_USERNAME=********
DB_PASSWORD=********
Я пытаюсь подключиться к tinket, но у меня есть это сообщение:
Psy Shell v0.10.4 (PHP 7.2.24-0ubuntu0.18.04.4 — cli) by Justin Hileman
>>> DB::connection();
PDOException with message 'could not find driver
Я должен установить свои учетные данные в app / config / db2. php, а не в .env?
ОБНОВЛЕНИЕ
Я устанавливаю unixODB C
odbcinst -j
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/za/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Загрузить ibm_data_server_driver_for_odbc_cli_linux390x64_v11.5.tar.gz
tar -xavf ibm_data_server_driver_for_odbc_cli_linux390x64_v11.5.tar.gz
cd odbc_cli
sudo mkdir -p /opt/ibm/clidriver
sudo cp -r clidriver/* /opt/ibm/clidriver
Отредактировать odbcinst.ini
[Db2]
Description=Db2 Driver
Driver=/opt/ibm/clidriver/lib/libdb2o.so
fileusage=1
dontdlclose=1
Отредактировать odb c .ini для теста
[sample]
Description = Test to DB2
Driver = Db2
но когда я попробовал, я получил это сообщение
export DB2INSTANCE=db2inst1
isql -v sample db2inst1 ibmdb2
[01000][unixODBC][Driver Manager]Can't open lib '/opt/ibm/clidriver/lib/libdb2o.so' : file not found
[ISQL]ERROR: Could not SQLConnect
ОБНОВЛЕНИЕ 2
I go до https://www.ibm.com/support/pages/node/633843
Щелкните Загрузки для клиентских решений IBM i Access
При появлении запроса l og с моим IBMid
Прокрутите вниз и рядом с ACS Linux App Pkg выберите Загрузить сейчас
После этого я установил ibm-iaccess-1.1.0.13-1.0.x86_64. rpm, я вижу, что он автоматически добавляет драйвер IBM i Access ODB C в odbcinst.ini.
Отредактируйте odb c .ini для теста
[sample]
Description = Test to DB2
Driver = IBM i Access ODBC Driver
Но это ошибка повторяется (тогда как /opt/ibm/iaccess/lib64/libcwbodbc.существует).
isql -v sample
[01000][unixODBC][Driver Manager]Can't open lib '/opt/ibm/iaccess/lib64/libcwbodbc.so' : file not found
[ISQL]ERROR: Could not SQLConnect
ОБНОВЛЕНИЕ 3
Я ввожу эту команду
ldd /opt/ibm/iaccess/lib64/libcwbodbc.so
linux-vdso.so.1 (0x00007ffe4830e000)
libodbcinst.so.2 => /usr/lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f1fdc97e000)
libcwbcore.so => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1fdc5f5000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1fdc257000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1fdc03f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1fdbc4e000)
libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f1fdba44000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1fdb825000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1fdce6c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1fdb621000)
Я сделал это потом.
cp /opt/ibm/iaccess/lib64/libcwbcore.so /usr/lib/x86_64-linux-gnu/
isql -v sample
[S1000][unixODBC][IBM][Pilote ODBC System i Access]Le nom de syst�me requis pour la connexion est manquant.
[ISQL]ERROR: Could not SQLConnect