2016-05-09 37 views
6

Ho difficoltà a connettersi al database db2 remoto utilizzando pdo_ibm, ho seguito le istruzioni su IBM per configurare la libreria pdo_ibm e il client linux ma poiché il mio php non è configurato manualmente ma installato tramite apt-get non sono sicuro se l'errore corrente potrebbe essere dovuto a una configurazione errata oa qualsiasi altra cosa.collegamento a db2 tramite modulo pdo_ibm errore configurato manualmente SQL10007N -5005

La mia tappa è: Linux Debian wheezy IBM Client DB2 10.5 php 5.4.45 pdo_ibm 1.4

quando provo a connettermi con DB2 con il seguente codice:

<?php 
$usernameMaximo = '@user'; 
$passwordMaximo = '@password'; 
$connectionStringMaximo = 'ibm:DRIVER={IBM DB2 ODBC DRIVER};[email protected];[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); 
} 

ottengo il seguente errore

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 

rete/firewall è già controllare così io può connettersi tramite client scoiattolo, Qualcuno ha affrontato lo stesso problema?

+0

Se si ha accesso a db2diag .log sul server, verificare eventuali errori. Suppongo che in Squirrel sia stata utilizzata la stessa porta. –

+0

@data_henrik Sì, la stessa porta viene utilizzata nello scoiattolo, non credo che la connessione stia raggiungendo il server, ma proverò a recuperare il file di registro. – DiegoCoderPlus

risposta

3

Hai provato il modo alternativo fornito here

L'esempio seguente mostra un PDO_IBM DSN per la connessione a un database DB2 catalogato come DB2_MAXIMO in 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 
3

Puoi provare a impostare il giusto il nome dell'istanza NCIM? per impostazione predefinita:

DB2INSTANCE=db2inst1 

Per sapere se db2inst1 è il nome giusto di DB2, eseguire:

sudo su db2inst1 
db2level 

risposta potrebbe essere qualcosa di simile:

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".