0

我无法将 oracle 与 cakephp2 连接,搜索了几个小时后,我发现并一步一步地跟踪链接 仍然不成功,我的 oracle 11g

错误:

ORA-12514: TNS:listener 当前不知道连接描述符中请求的服务

4

2 回答 2

1

我找到了有很多错误的解决方案,这里是我修复的:(注意仍然遵循这个链接

  1. php 版本 5.4.+ 出错,p 5.3.0(wamp 服务器)
  2. 具有覆盖功能的 oracle php 文件文件出错(方法不兼容)
  3. 错误连接数据库配置
  4. 错误 SELECT * FROM your table name [不要使用 select * 那会起作用]

怎么修:

  1. 如果还是 php 5.3.0 启用模块 oci8
  2. 使用这个我已经修改过的oracle文件数据库
  3. 在 Cakephp Config database.php 中使用
public $dboracle = array(
        'datasource' => 'Database/Oracle',
        'driver' => 'oracle',
        'connect' => 'oci_connect',
        'persistent' => true,
        'host' => "your host database ip",
        'login' => 'db user name',
        'password' => 'db password',
        'database' => '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=you db ip )(PORT=1521))
                    (CONNECT_DATA=(SID= you sid)))',
        'prefix' => '',
        'schema' => 'schema_name'
);
于 2013-01-31T02:37:04.127 回答
0

首先,ORA 错误是 ORA-12514: TNS listener cannot resolve service name 错误的排列,如下所示。这种形式的 ORA-12541 错误通常发生在数据库或侦听器进程处于启动过程中,或者当数据库(在您的情况下为 mysid)尚未向侦听器注册时。

根> oerr ora 12514

ORA-12514: TNS:listener 当前不知道连接描述符中请求的服务

原因:

  • 侦听器接收到建立与数据库或其他服务的连接的请求。
  • 侦听器接收到的连接描述符为尚未向侦听器动态注册或尚未为侦听器静态配置的服务(通常是数据库服务)指定服务名称。
  • 这可能是一个临时条件,例如在侦听器
    启动之后,但在数据库实例向
    侦听器注册之前。

行动:

  • 稍等片刻,然后尝试再次连接。
  • 通过执行以下命令检查侦听器当前知道哪些服务: lsnrctl services
  • 检查使用的网络服务名称的连接描述符中的 SERVICE_NAME 参数是否指定了侦听器已知的服务。

如果使用了简单连接命名连接标识符,请检查指定的服务名称是否为侦听器已知的服务。

检查 listener.log 文件中的事件。

于 2013-01-24T02:03:23.927 回答