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

标签 php pdo db2

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

我的舞台是: Linux debian 喘息 IBM DB2 客户端 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);
}

出现以下错误

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

网络/防火墙已经过检查,所以我可以通过 squirrel 客户端连接,有人遇到过同样的问题吗?

最佳答案

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

以下示例显示了用于连接到在 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

关于php - 通过 pdo_ibm 模块连接到 db2 手动配置错误 SQL10007N -5005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37113718/

相关文章:

php - 如何将表连接到此结果?

php - 选择要运行的数据库连接

php - 用一个变量查询多个字段的PDO最佳实践

php - IF/Select 来自表单的 PHP 语句

db2 - 为什么 DB2 建议每个表空间一张表?

java - 数据库单元 : NoSuchTableException caught

php - 如何使用 NSURLConnection 获得 PHP 回显?

php - 如何将查询语句转换为 DB::raw eloquent laravel?

database - DB2 通信错误

javascript - 从具有相同值的多个复选框中捕获值