2016-05-09 4 views
6

Ich habe Schwierigkeiten, Verbindung zu Remote-Datenbank db2 mit PDO_IBM, folgte ich den Anweisungen auf IBM zu konfigurieren die PDO_IBM-Bibliothek und Linux-Client, aber da mein PHP ist nicht manuell konfiguriert aber durch apt-get installiert, bin ich mir nicht sicher, ob der aktuelle Fehler auf eine Fehlkonfiguration oder irgendetwas anderes zurückzuführen ist.Verbindung zu db2 durch manuell konfigurierten Fehler Modul SQL10007N -5005

Meine Bühne ist: Linux Debian sid IBM DB2 Client 10.5 PHP 5.4.45 pdo_ibm 1.4

wenn ich versuche, mit db2 mit dem folgenden Code zu verbinden:

<?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); 
} 

ich der folgende Fehler

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 

Netzwerk/Firewall ist bereits überprüfen, damit ich kann durch Eichhörnchen Client verbinden, hat jemand das gleiche Problem konfrontiert?

+0

Wenn Sie Zugang zu db2diag .log auf dem Server, prüfen Sie auf einen Fehler. Ich nehme an, dass in Squirrel derselbe Port verwendet wurde. –

+0

@data_henrik ja der gleiche Port wird in Squirrel verwendet, ich glaube nicht, dass die Verbindung sogar den Server erreicht, aber ich werde versuchen, Log-Datei wiederherzustellen. – DiegoCoderPlus

Antwort

3

Haben Sie die alternative Art und Weise here

Das folgende Beispiel zeigt eine PDO_IBM DSN für die Verbindung mit einer DB2-Datenbank katalogisiert als DB2_MAXIMO in db2cli.ini bereitgestellt versucht:

$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

können Sie versuchen, die festlegen Recht NCIM-Instanzname? Standardmäßig:

DB2INSTANCE=db2inst1 

Um zu wissen, ob db2inst1 der richtige Name der DB2-Instanz ist, auszuführen:

sudo su db2inst1 
db2level 

Antwort so etwas wie dies sein könnte:

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