通过pdo_ibm模块连接到db2手动配置的错误SQL10007N -5005

Die*_*lus 6 php db2 pdo

我很难使用pdo_ibm连接到远程db2数据库,我按照IBM上的说明配置pdo_ibm库和linux客户端但由于我的php没有手动配置但是通过apt-get安装我不确定当前的错误是否可能是由于配置错误或其他任何原因.

我的阶段是:Linux debian wheezy ibm db2 client 10.5 php 5.4.45 pdo_ibm 1.4

当我尝试使用以下代码连接db2时:

<?php
$usernameMaximo = '@user';
$passwordMaximo = '@password';
$connectionStringMaximo = 'ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=@databaseName;HOSTNAME=@xx.xxx.xxx.xx;PORT=50002;PROTOCOL=TCPIP;';
try {
  $connection = new PDO($connectionStringMaximo, $usernameMaximo, $passwordMaximo, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
  );
  echo "Success";
}
catch (Exception $e) {
    var_dump($e);
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

object(PDOException)[2]
  protected 'message' => string 'SQLSTATE=     , SQLDriverConnect: -5005 [IBM][CLI Driver] SQL10007N Message "0" could not be retrieved.  Reason code: "3".
' (length=123)
  private 'string' (Exception) => string '' (length=0)
  protected 'code' => int 0
  protected 'file' => string '/apps/html/tests/pdo_db2.php' (length=28)
  protected 'line' => int 8
  private 'trace' (Exception) => 
    array (size=1)
      0 => 
        array (size=6)
          'file' => string '/apps/html/tests/pdo_db2.php' (length=28)
          'line' => int 8
          'function' => string '__construct' (length=11)
          'class' => string 'PDO' (length=3)
          'type' => string '->' (length=2)
          'args' => 
            array (size=4)
              ...
  private 'previous' (Exception) => null
  public 'errorInfo' => null
Run Code Online (Sandbox Code Playgroud)

网络/防火墙已经检查,所以我可以通过squirrel客户端连接,任何人都面临同样的问题?

小智 3

您是否尝试过此处提供的替代方法

以下示例显示用于连接到 db2cli.ini 中编目为 DB2_MAXIMO 的 DB2 数据库的 PDO_IBM DSN:

$db = new PDO("ibm:DSN=DB2_MAXIMO", "", "");

[DB2_MAXIMO]
Database=SAMPLE
Protocol=TCPIP
Port=50002
Hostname=my-db2-machine
UID=my-OS-user
PWD=my-OS-password
Run Code Online (Sandbox Code Playgroud)