php - 在 Red Hat Linux 6 上使用 PHP odbc 连接到 Teradata 数据库时出错
问题描述
我有一个安装并运行 Apache 和 PHP 的 Red Hat Linux 6。我已经安装了 MS SQL Server 和 Teradata 驱动程序,并且能够通过服务器终端上的 iSQL 连接并执行对这些数据库的查询。
当我尝试通过 PHP 脚本使用 ODBC 连接时,我能够连接并在 MS SQL Server 上执行查询,但如果我尝试连接到 Teradata 数据库,则会收到以下错误消息:
警告:odbc_connect():SQL 错误:[unixODBC][驱动程序管理器]无法打开 lib '/opt/teradata/client/14.10/odbc_64/lib/tdata.so':找不到文件,SQL 状态 01000
此文件 tdata.so存在于引用的位置,并具有所有可能的权限。
php代码是:
$con_string = "DRIVER={Teradata};DBCName=SERVER; DATABASE=MYDB;";
$con = odbc_pconnect( $con_string , "USER", "PASSWORD" );
odbc.ini 文件(位于 /etc/odbc.ini 中)具有以下内容:
[Teradata]
Driver=/opt/teradata/client/14.10/odbc_64/lib/tdata.so
Description=Teradata database
DBCName=SERVER
LastUser=
Username=
Password=
Database=
DefaultDatabase=
[MSSQL]
Description=Microsoft ODBC Driver 17 for SQL Server A
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1
UsageCount=1
当我执行命令时:
ldd /opt/teradata/client/14.10/odbc_64/lib/tdata.so
我得到这个回应:
linux-vdso.so.1 => (0x00007ffff03ff000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fb736c1e000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb736a07000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb7367ea000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb7365e6000)
librt.so.1 => /lib64/librt.so.1 (0x00007fb7363dd000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fb7361c4000)
libodbcinst.so => /opt/teradata/client/14.10/odbc_64/lib/libodbcinst.so (0x00007fb735fa0000)
libddicu26.so => /opt/teradata/client/14.10/odbc_64/lib/libddicu26.so (0x00007fb7350a8000)
libtdparse.so => /opt/teradata/client/14.10/odbc_64/lib/libtdparse.so (0x00007fb734f22000)
libicudatatd.so.46 => /usr/lib64/libicudatatd.so.46 (0x00007fb7346d8000)
libicuuctd.so.46 => /usr/lib64/libicuuctd.so.46 (0x00007fb73444a000)
libm.so.6 => /lib64/libm.so.6 (0x00007fb7341c6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb733e32000)
/lib64/ld-linux-x86-64.so.2 (0x0000003727400000)
当我执行命令时,路径似乎也正确配置:
echo $LD_LIBRARY_PATH
我得到这个回应:
/opt/teradata/client/14.10/odbc_64/lib:/opt/teradata/client/14.10/lib:/opt/teradata/client/14.10/tbuild/lib:/opt/teradata/client/14.00/odbc_64/lib::/usr/lib
我不明白出了什么问题,我尝试了各种可能的解决方案,但没有什么对我有用。有人可以帮忙吗?
解决方案
推荐阅读
- python - “拉伸”数据框并用零填充
- java - 使用 docx4j 以编程方式将字体从 ttf 文件嵌入到 .docx 文件
- asp.net-mvc - 模型绑定 - 级联关系
- java - 多对一和列冲突
- python - 如何使用python在文件上传窗口中选择文件
- java - 具有内部类的性能影响
- python - 无法在 Apple M1 芯片中为 python django 安装 firebase-admin pip 包
- ios - IOS - IAP - 用户管理
- flutter - Pubspec yaml 版本解决失败
- java - Eclipse 错误 - Java 已启动但返回退出代码 = 13 在多次更改后仍然发生