2016-07-29 74 views
0

我的配置: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 ,结果相同。

+0

检查SQL * Plus是否可以连接。您的错误指向网络配置问题,可能是入境或出境防火墙。 –

+0

一些常规的供参考意见:(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 –

+0

ty您的评论克里斯托弗。 正如我之前所说,我尝试与oci_connect,相同的结果。 –

回答

0

发现问题。

我试图用5个不同的IP连接到oracle rac。我的网络管理员只允许4个5.

因此,网络问题,与tcpdump我们发现问题。

谢谢