2016-07-29 68 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我們發現問題。

謝謝