1

我项目的总体目标是连接到另一台服务器上的 Oracle 数据库,使用 PHP 对其进行查询,以便我可以使用 JavaScript 创建数据图表。

我的服务器正在运行 CentOS

到目前为止,我已经按照网络上的说明进行操作,并在我的服务器上安装了 oci8 以及 Oracle Insant 客户端。

然后我创建了一个 shell 脚本来隧道到远程服务器。

接下来我创建了一个测试 php 文件来尝试连接到数据库

<?php
$conn = oci_connect('name', 'pw', 'servername/databasename');
if(!$conn){
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

oci_close($conn);

?>

当我在浏览器中加载它时,我收到以下错误

警告:oci_connect(): ORA-12541: TNS: no listener in /var/www/html/djc/ociConnect.php on line 3 致命错误: ORA-12541: TNS: no listener in /var/www/html/djc /ociConnect.php 在第 6 行

我已经对错误进行了研究,我知道主要问题是 lsnrctl start

不起作用,我没有 lsnrctl 功能。我也没有 TNSNAMES.ORA 或 LISTENER.ORA 文件。

我不知道如何让 lsnrctl 在我的服务器上工作,或者我什至从正确的角度解决这个问题。

还尝试启动 sqlplus(我从 rpm 安装),返回找不到命令。

有什么建议么?我什至不确定我是否要在正确的庄园中实现我的目标,所以非常感谢任何帮助。

4

1 回答 1

2

我曾经联系过:

//Putenv("NLS_LANG=SPANISH_SPAIN.WE8ISO8859P15");
$db="(DESCRIPTION=
     (ADDRESS_LIST=
       (ADDRESS=(PROTOCOL=TCP)
         (HOST=$GLOBALS[dbhost])(PORT=$GLOBALS[dbport])
       )
     )
       (CONNECT_DATA=(SID=$GLOBALS[dbname]))
 )";
 $conn = OCILogon($GLOBALS['dbuser'],$GLOBALS['dbpasswd'],$db);

相应地替换 $GLOBALS['dbuser']、$GLOBALS['dbpasswd']、$GLOBALS[dbhost]、$GLOBALS[dbname]、$GLOBALS[dbport]。

于 2012-04-18T20:08:03.937 回答