现在有一段时间,我一直在寻找如何尝试使用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 ...
解决方案是下载并安装适用于Linux上适合ODBC / CLI的Db2驱动程序,专门用于IBM网站link上的i系列(AS / 400)。