PHP无法连接,但SqlPlus可以

时间:2012-02-09 17:45:18

标签: php oracle sqlplus

现在这个问题令人难以置信。

我想连接一个oracle服务器。我可以使用sqlplus命令行轻松连接到它。

当我尝试使用PHP连接到oracle数据库时,它失败了。这是捕获,我们在另一个数据中心有相同的设置; PHP机器正在尝试连接到oracle数据库。我运行完全相同的代码,在两台PHP机器上配置相同的php。

PHP1可以通过sqlplus和php连接到Oracle1。

PHP2使用sqlplus连接到Oracle2,但不使用PHP。

有防火墙和一些端口阻塞正在进行中。我目前的解释是,用于连接oracle2的端口php2不是默认的1521并且它被阻止。

我得到的ora错误是:

ORA-06413:连接未打开。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

该错误表示由于某种原因无法解析TNS连接描述符。在尝试构建连接信息时,Oracle通常会遇到系统调用问题。

您的计划名称,用户名或机器名称中是否有括号?

您是否在64位Windows操作系统上运行32位Oracle客户端?

尝试从命令行使用tnsping实用程序。这告诉你什么?

答案 1 :(得分:0)

从提供的信息中,我最好的猜测(将其缩小到编程原因)是问题机器发送的数据库名称,用户名或密码包含转义序列($\t\a\r等),当您在PHP脚本中以字符串文字键入时,会被更改。