15

系统:

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: 无法生成唯一的服务器组名称

无法理解这是什么类型的错误以及如何修复它。

4

7 回答 7

45

如果你愿意,你可以降级到 10g(它显然不关心这个),但这不是必需的......

11g 即时客户端需要一个/etc/hosts指向 127.0.0.1 的主机名的文件条目。正常的“localhost”条目本身是不够的。

假设您的主机名是foomachine,您需要检查两个地方:

/etc/hosts中,确保您有任何条目,例如 - 如果不存在,请添加:

127.0.0.1   foomachine

并确保该/etc/sysconfig/network文件也有HOSTNAME=foomachine

这应该够了吧。

于 2012-05-22T21:02:31.820 回答
4

有点老问题,但我只是在将我的 Mac 升级到 Sierra 后偶然发现了这个问题。在那之前我没有遇到过问题。

诀窍肯定是将您的主机名添加到 /etc/hosts,但您必须拥有正确的主机名。这在 linux 上很容易,它在 /etc/sysconfig/network 中。在 Mac 上,在系统偏好设置 > 共享中找到它。在它说计算机名称的位置将类似于computer-name.local。在 /etc/hosts 中

   127.0.0.1 computer-name.local

当然用您的计算机名称替换计算机名称:)。 无论数据库是远程数据库还是本地数据库,它都需要这个。

我有很多 127.0.0.1 的其他别名,但不是那个。一旦我添加了那个,我的应用程序就重新开始工作了。

于 2016-10-11T14:23:07.137 回答
1

在我的情况下,我尝试连接的 OracleDB 服务器是远程服务器,而不是本地服务器,因此上述127.0.0.1 localhost技巧不起作用。

以前,我通过将我的 Oracle DB 服务器的条目添加到我的主机文件中来临时修复 DNS 问题。我的主机文件中的这个 IP 仍然正确- 它仍然指向正确的 OracleDB 服务器 IP。

通过从我的主机文件中删除条目,问题就消失了。

我不知道为什么这对 OracleDB 来说是个问题,或者为什么错误消息如此迟钝,但我希望这对其他人有所帮助。

(这是在 MacOS v10.11.5 上使用 InstantClient v12.1.0.2)

于 2016-09-13T08:16:43.193 回答
0

我有完全相同的问题。我修复了我的 /etc/hosts 和 /etc/sysconfig/network 文件并重新启动了网络,现在它工作正常。以下是一些快速而肮脏的说明:

http://ahmadzainuddinzakaria.blogspot.com/2012/06/warning-ociconnect-functionoci-connect.html

于 2013-08-15T18:54:26.260 回答
0

将此添加到 /etc/hosts 解决了该问题。

127.0.0.1 someHostName

要查找计算机的主机名,只需在终端中键入主机名。使用 vim 等文本编辑器来编辑主机。

~ hostname
someHostName
~ cd /etc
/etc sudo vim hosts
于 2019-11-27T20:05:23.177 回答
0

您实际上不需要使用类似127.0.0.1/etc/hosts东西

echo -e "127.0.0.1\t$HOSTNAME" >> /etc/hosts

这是违反常识的(并且仅从 2013 年 2 月起正式反对RFC 6761 )。

幸运的是,如果你只注册了你的真实 IP 地址,它也可以工作——比如

192.0.2.5 mymachine.example.net

顺便说一句,在使用 DHCP 创建的虚拟机中经常缺少这一点。

或者 - 最后的方案 - 使用 127.0.0.0/8 中的其他 IP 地址

127.0.1.1 mymachine.example.net

使用Oracle Instant Client 11.2测试。

处理像 Legato Backup 这样奇怪的东西的系统管理员会感谢你没有弄乱/etc/hosts.

于 2019-07-23T11:07:19.593 回答
0

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

原值:

HOSTNAME=localhost.localdomain

新值:

HOSTNAME=127.0.0.1
于 2016-03-28T13:37:57.843 回答