我正在尝试使用 PHP 的ODBC Driver从 Ubuntu 服务器连接到客户端的 IBM AS/400 DB2 数据库。我也安装了unixODBC。我的odbcinst.ini看起来像这样:
[IBM DB2 ODBC DRIVER]
Description = ODBC 5.1 Driver for Database
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
FileUsage = 1
我的odbc.ini看起来像这样:
[IBM DB2 ODBC DRIVER]
Driver = IBM DB2 ODBC DRIVER
Description = ODBC 5.1 Driver DSN
现在,我的连接代码是:
$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!';
我得到的错误是这样的:
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
我也尝试使用 PDO ODBC 驱动程序。这是我得到的错误:
$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
我在这里做错了吗?我需要使用其他驱动程序吗,因为用户名和密码正确,我看到客户端使用我拥有的用户名和密码登录到数据库。我认为用户名和密码错误,因为它说Access Denied for user。似乎并非如此。可能还有其他问题。
谢谢您的帮助。我希望我把问题说得很清楚。谢谢!