php - conexión al error de configuración manual del módulo db2 a pdo_ibm SQL10007N-5005
(2)
Has probado la forma alternativa provista aquí
El siguiente ejemplo muestra un DSN de PDO_IBM para conectarse a una base de datos DB2 catalogada como DB2_MAXIMO en db2cli.ini:
$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
Tengo dificultades para conectarme a la base de datos db2 remota usando pdo_ibm, seguí las instrucciones de IBM para configurar la biblioteca pdo_ibm y el cliente de Linux, pero como mi php no está configurado manualmente pero instalado a través de apt-get, no estoy seguro de si el error actual podría ser debido a una configuración incorrecta o cualquier otra cosa.
Mi etapa es: Linux debian wheezy ibm db2 client 10.5 php 5.4.45 pdo_ibm 1.4
cuando intento conectarme con db2 con el siguiente código:
<?php
$usernameMaximo = ''@user'';
$passwordMaximo = ''@password'';
$connectionStringMaximo = ''ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=@databaseName;[email protected];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);
}
Obtuve el siguiente error
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
La red / firewall ya está activada para poder conectarme a través del cliente de ardilla. ¿Alguien ha enfrentado el mismo problema?
¿Puedes intentar establecer el nombre de instancia de NCIM correcto? por defecto:
DB2INSTANCE=db2inst1
Para saber si db2inst1 es el nombre correcto de la instancia de DB2, ejecute:
sudo su db2inst1
db2level
La respuesta podría ser algo como esto:
DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09074"
with level identifier "08050107".
Informational tokens are "DB2 v9.7.0.4", "s110330", "IP23243", and Fix Pack "4".
Product is installed at "/opt/ibm/db2/V9.7".