如何将AS400与Laravel连接

问题描述 投票:1回答:1

现在有一段时间,我一直在寻找如何尝试使用Laravel 7连接到AS400。

我使用此程序包:https://github.com/cooperl22/laravel-ibmi

我将laravel-ibmi添加到您的composer.json文件:

"require": {
    "cooperl/laravel-ibmi": "^7.0"
}

使用作曲家安装此软件包。

$ composer update

从项目的根目录在命令行中运行:

$ php artisan vendor:publish

并在.env中设置凭据

DB_CONNECTION=ibmi
DB_HOST=********
DB_PORT=********
DB_DATABASE=********
DB_USERNAME=********
DB_PASSWORD=********

我尝试与修补程序建立连接,但我收到此消息:

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中设置我的凭据?

更新

我安装了unixODBC

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

编辑odbc.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

我去https://www.ibm.com/support/pages/node/633843

单击“ IBM i Access客户端解决方案的下载”]

出现提示时,使用我的IBMid登录

向下滚动,然后在ACS Linux App Pkg旁边,选择立即下载

[在安装ibm-iaccess-1.1.0.13-1.0.x86_64.rpm之后,我看到它自动将IBM i Access ODBC驱动程序添加到odbcinst.ini。

编辑odbc.ini以进行测试

[sample]
Description     = Test to DB2
Driver          = IBM i Access ODBC Driver

但是是重复出现此错误的(存在/opt/ibm/iaccess/lib64/libcwbodbc.so)。

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

[有一阵子,我一直在寻找如何尝试使用Laravel 7连接到AS400。我使用了这个包:https://github.com/cooperl22/laravel-ibmi我将laravel-ibmi添加到您的作曲家.json ...

php laravel db2 ibm-midrange
1个回答
0
投票

解决方案是下载并安装适用于Linux上适合ODBC / CLI的Db2驱动程序,专门用于IBM网站link上的i系列(AS / 400)。

© www.soinside.com 2019 - 2024. All rights reserved.