现在这个问题令人难以置信。
我想连接一个oracle服务器。我可以使用sqlplus命令行轻松连接到它。
当我尝试使用PHP连接到oracle数据库时,它失败了。这是捕获,我们在另一个数据中心有相同的设置; PHP机器正在尝试连接到oracle数据库。我运行完全相同的代码,在两台PHP机器上配置相同的php。
PHP1可以通过sqlplus和php连接到Oracle1。
PHP2使用sqlplus连接到Oracle2,但不使用PHP。
有防火墙和一些端口阻塞正在进行中。我目前的解释是,用于连接oracle2的端口php2不是默认的1521并且它被阻止。
我得到的ora错误是:
ORA-06413:连接未打开。
有什么想法吗?
答案 0 :(得分:1)
该错误表示由于某种原因无法解析TNS连接描述符。在尝试构建连接信息时,Oracle通常会遇到系统调用问题。
您的计划名称,用户名或机器名称中是否有括号?
您是否在64位Windows操作系统上运行32位Oracle客户端?
尝试从命令行使用tnsping实用程序。这告诉你什么?
答案 1 :(得分:0)
从提供的信息中,我最好的猜测(将其缩小到编程原因)是问题机器发送的数据库名称,用户名或密码包含转义序列($
,\t
, \a
,\r
等),当您在PHP脚本中以字符串文字键入时,会被更改。