2012-05-07 62 views
13

系統:ORA-24408:無法生成唯一的服務器組名稱

Linux web 2.6.27.21-0.1-pae #1 SMP 2009-03-31 14:50:44 +0200 i686 i686 i386 GNU/Linux 

PHP Version 5.3.8 
Apache Version Apache/2.2.21 (Linux/SUSE) 
OCI8 Support enabled 
Version  1.4.7 
Revision $Revision: 321634 $ 
Active Persistent Connections 0 
Active Connections 0 
Oracle Run-time Client Library Version 11.2.0.3.0 
Oracle Instant Client Version 11.2 

調用oci_connect時 - 接收地

ORA-24408:無法生成唯一的服務器組名稱

不能理解這種錯誤是怎麼解決的。

+1

http://nickshontz.wordpress.com/2011/11/29/php-oracle/ –

+0

·塞爾吉奧·米歇爾斯 - 謝謝,我心底嘗試 – Subdigger

+0

·塞爾吉奧·米歇爾斯 - 它的工作原理TNX – Subdigger

回答

-5

這是運行時oracle 11g和PHP Oci支持的兼容性錯誤。正如OP所確認的,客戶端降級到10g是可行的。該解決方案被發現here

+3

降級是絕對沒有必要的 - 請參閱下面的答案。 –

+0

@CamdenS。復甦舊的主題? :-)我只是把它作爲OP所要求的答案,也許值得在博客文章中發表評論。 –

35

您可以降級到10g,如果你想(這顯然不關心這個),但是這是沒有必要的......

11g的即時客戶端需要爲您的主機名指向127.0.0.1一個/etc/hosts文件條目。正常的「本地主機」條目本身是不夠的。

假設你的主機名是foomachine,有你需要檢查兩個地方:

/etc/hosts,請確保您有喜歡的任何條目 - 添加它,如果它不存在:

127.0.0.1 foomachine 

也確保/etc/sysconfig/network文件也有HOSTNAME=foomachine

這應該做的伎倆。

+2

太棒了,你救了我的一天。非常感謝你。 –

+4

我可以證實這一點解決了我的設置問題(Mac OS X 10.8.4)。在Mac OS X上,我只需將條目添加到'/ etc/hosts'文件中,然後重試該命令即可運行。奇怪的是,在這個問題出現之前,我一直在使用相同的代碼幾個星期沒有問題,但我很高興它只需要一個簡單的修復。謝謝你的提示! – bluebinary

+3

它也適用於真正的網絡接口IP之一,不需要127.0.0.1。 – eckes

0

在CentOS的6.5,我改變了文件的值:/etc/sysconfig/network

原值:

HOSTNAME=localhost.localdomain 

新值:

HOSTNAME=127.0.0.1 
0

在我的情況下,OracleDB服務器我w因爲試圖連接到一個遠程的,而不是本地的,所以上述127.0.0.1 localhost技巧不起作用。

此前,我通過向我的hosts文件添加了一個用於Oracle數據庫服務器的條目來臨時修復DNS問題。 這個IP在我的主機文件仍然是正確的 - 它仍然指向正確的OracleDB服務器IP。

通過從我的hosts文件中刪除條目,問題就消失了。

我不知道爲什麼這是OracleDB的問題,或者爲什麼錯誤消息太鈍了,但我希望這可以幫助別人。

(這是用在MacOS v10.11.5 InstantClient v12.1.0.2)一個老問題的

4

類,但我的Mac升級到塞拉利昂之後,我只是偶然就可以了。在那之前,我沒有遇到過這個問題。

技巧是將您的主機名添加到/ etc/hosts,但您必須擁有正確的主機名。在linux上很容易,它在/ etc/sysconfig/network中。在Mac上,在系統偏好設置>共享中找到它。在它說的地方,計算機名稱就像是computer-name.local。在/ etc/hosts中放入

127.0.0.1 computer-name.local 

用你的計算機名替換計算機名:)。 無論數據庫是遠程數據庫還是本地數據庫,都需要它。

我有很多127.0.0.1其他別名,但不是那個。只要我添加一個我的應用程序再次開始工作。