ocilogon():ORA-12170:TNS:连接超时发生
问题描述:
我的配置:ocilogon():ORA-12170:TNS:连接超时发生
PHP
PHP 5.4.16
OCI8
OCI8支持启用 OCI8禁用DTrace支持 OCI8版本2.0.11
环境
LANG C在
路径/ usr/local/sbin中:在/ usr/local/bin目录:/ usr/sbin目录:在/ usr/bin中中:/ opt/instantclient
NOTIFY_SOCKET /运行/ systemd /通知
ORACLE_HOME /选择/ instantclient
LD_LIBRARY_PATH的/ opt/instantclient
TNS_ADMIN的/ opt/instantclient /网络/管理员
XERCES_DISABLE_DTD 1
防火墙
禁用
问题
当我执行一个PHP页面ocilogon:
ocilogon():ORA-12170:TNS:连接超时发生
但如果我尝试的telnet XXXX 1521我可以连接到数据库
我的PHP代码:
$test1 = "(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxx)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = yyy))
)";
$conn=ocilogon(USERNAME,PASSWORD,$test1) or die ("logon problem");
我tryed与oci_connect ,结果相同。
答
发现问题。
我试图用5个不同的IP连接到oracle rac。我的网络管理员只允许4个5.
因此,网络问题,与tcpdump我们发现问题。
谢谢
检查SQL * Plus是否可以连接。您的错误指向网络配置问题,可能是入境或出境防火墙。 –
一些常规的供参考意见:(i)因为您正在使用即时客户端,您不需要设置ORACLE_HOME(ii)您在PHP中使用过时的函数名称。新的类似于oci_connect()(iii)您可以使用'简单连接'语法而不是旧的完整TNS字符串。新的语法就像'$ test =“xxxxxx/yyy”'。查看Oracle关于PHP OCI8的免费书籍:http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250。html –
ty您的评论克里斯托弗。 正如我之前所说,我尝试与oci_connect,相同的结果。 –