系统:
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:无法生成唯一的服务器组名称
无法理解这种错误是什么以及如何解决它。
答案 0 :(得分:39)
如果你愿意,你可以降级到10g(显然不关心这个),但这不是必要的......
11g即时客户端需要/etc/hosts
个主机名的文件条目,指向127.0.0.1。正常的“localhost”条目是不够的。
假设您的主机名为foomachine
,您需要检查两个地方:
在/etc/hosts
中,请确保您有任何条目 - 如果不存在则添加:
127.0.0.1 foomachine
并确保/etc/sysconfig/network
文件也有HOSTNAME=foomachine
这应该可以解决问题。
答案 1 :(得分:4)
有点老问题,但我在将Mac升级到Sierra之后偶然发现了它。在那之前我没有遇到过这个问题。
诀窍肯定是将您的主机名添加到/ etc / hosts,但您必须拥有正确的主机名。这在linux上很容易,它在/ etc / sysconfig / network中。在Mac上,在系统偏好设置>中找到它共享。在它所说的计算机名称将类似于computer-name.local。在/ etc / hosts中放
% Read the entire file into memory
fid = fopen(loaddata, 'rb');
contents = fread(fid, '*char')';
fclose(fid);
% Replace `,` with `.`
contents = strrep(contents, ',', '.');
% Now convert to numbers
data = str2num(contents);
当然用您的计算机名替换计算机名:)。 无论数据库是远程数据库还是本地数据库,都需要这样做。
我有127.0.0.1的其他很多别名但不是那个。一旦我添加了一个我的应用程序再次开始工作。
答案 2 :(得分:0)
我有完全相同的问题。我修复了我的/ etc / hosts和/ etc / sysconfig / network文件并重新启动了网络,现在工作正常。以下是一些快速而肮脏的说明:
http://ahmadzainuddinzakaria.blogspot.com/2012/06/warning-ociconnect-functionoci-connect.html
答案 3 :(得分:0)
在CentOS 6.5中,我更改了文件的值:/etc/sysconfig/network
原始值:
HOSTNAME=localhost.localdomain
新价值:
HOSTNAME=127.0.0.1
答案 4 :(得分:0)
在我的情况下,我尝试连接的OracleDB服务器是远程的,而不是本地的,所以上面的127.0.0.1 localhost
技巧不起作用。
以前,我通过将我的Oracle数据库服务器的条目添加到我的hosts文件中来暂时修复了DNS问题。 我的主机文件中的IP仍然是正确的 - 它仍然指向正确的OracleDB服务器IP。
通过删除主机文件中的条目,问题就消失了。
我不知道为什么这对OracleDB来说是一个问题,或者为什么错误信息如此钝,但我希望这有助于其他人。
(这是在MacOS v10.11.5上使用InstantClient v12.1.0.2)
答案 5 :(得分: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
。
答案 6 :(得分:0)
将此添加到/ etc / hosts即可解决此问题。
127.0.0.1 someHostName
要查找计算机的主机名,只需在终端中键入主机名。使用诸如vim之类的文本编辑器来编辑主机。
~ hostname
someHostName
~ cd /etc
/etc sudo vim hosts
答案 7 :(得分:-5)
这是运行时oracle 11g和PHP Oci支持兼容性的错误。正如OP确认的那样,将客户降级到10g是有效的。找到了解决方案here。