Herstellen einer Verbindung zu einer IBM AS / 400-DB2-Datenbank

Ich versuche, über PHP von einem Ubuntu-Server aus eine Verbindung zur IBM AS / 400-DB2-Datenbank eines Clients herzustellenODBC-Treiber. ich habeunixODBC auch installiert. Meineodbcinst.ini sieht aus wie das:

[IBM DB2 ODBC DRIVER]
Description = ODBC 5.1 Driver for Database
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
FileUsage = 1

Und meinodbc.ini sieht aus wie das:

[IBM DB2 ODBC DRIVER]
Driver = IBM DB2 ODBC DRIVER
Description = ODBC 5.1 Driver DSN

Nun ist mein Code zum Verbinden:

$server = '12.345.678.90' //IP
$port = '446' //PORT
$username = 'my_username';
$password = 'my_password';

$connect = odbc_connect("DRIVER = {IBM DB2 ODBC DRIVER};System=$server:$port;Uid=$username;Pwd=$password;", $username, $password);

if(!$connect)
    echo 'Cannot Connect!';
else
    echo 'Connected!';

Der Fehler, den ich erhalte, ist folgender:

Warning: odbc_connect(): SQL Error: [unixODBC][MySQL][ODBC 5.1 Driver]Access denied for user 'my_username'@'localhost' (using password: YES), SQL state S1000 in SQLConnect

Ich habe auch versucht, den PDO-ODBC-Treiber zu verwenden. Dies ist der Fehler, den ich erhalte:

$connect = new PDO("odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=$server;PORT=$port;Uid=$username;Pwd=$password");

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] SQLDriverConnect: 1045 [unixODBC][MySQL][ODBC 5.1 Driver]Access denied for user 'my_username'@'localhost' (using password: YES)' in /var/www/test_file.php Stack trace: #0 /var/www/test_file.php: PDO->__construct('odbc:DRIVER={IB...') #1 {main} thrown in /var/www/test_file.php

Mache ich hier etwas falsch? Muss ich einen anderen Treiber verwenden, da der Benutzername und das Kennwort korrekt sind? Ich habe gesehen, dass sich der Client mit dem von mir angegebenen Benutzernamen und Kennwort bei der Datenbank angemeldet hat. Ich dachte, der Benutzername und das Passwort wären falsch, weil dort stehtZugang für Benutzer verweigert. Das scheint nicht der Fall zu sein. Möglicherweise stimmt etwas anderes nicht.

Danke für deine Hilfe. Ich hoffe, ich habe das Problem sehr deutlich gemacht. Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage