zoukankan      html  css  js  c++  java
  • Oracle中Error while performing database login with the XXXdriver; Listener refused the connection with the following error; ORA-12505,TNS:listener does not currently know of SID given inconnect descrip

    一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结 

    首先应该保证数据库的服务启动 
    在myeclipse的数据库视图中点 右键->new 弹出database driver的窗口, 
    Driver template选择oracle(thin driver), 
    Driver name 输入oracle   
    connection URL=jdbc:oracle:thin:@localhost:1521:oracle 注意localhost:1521:oracle中的oracle是数据库得sid换成你自己数据库的sid就可以 
    username:登陆数据库具有system权限的用户名 
    password:登陆数据库具有system权限的密码 
    点击add jar 选择ojdbc14.jar的存放位置,没有得可以到百度下一个叫ojdbc14.jar的文件。 
    点击test driver 到此成功配置。 

    关于启动数据库后提示ora-12505的解决方法: 
    "listener does not currently know of SID given in connect descriptor" 

    第一种可能 
    是配置得数据库sid名不正确localhost:1521:oracle 即红字部分不是你本机得sid,那么如何查看本机得sid呢?用如下命令 SELECT   NAME   FROM   v$database;在sqlplus中执行就可以看到,把红字部分换成查询出来的sid就可以。 
    第二种可能 
    发现sid配置没有错误,但是还是报错,那可能就是oracle得监听配置出了问题,需要检查listener.ora文件,用记事本打开, 
    正确配置如下: 
    # listener.ora Network Configuration File: e:oracleproduct10.2.0db_1 etworkadminlistener.ora 
    # Generated by Oracle configuration tools. 
    SID_LIST_LISTENER = 
      (SID_LIST = 
        (SID_DESC = 
          (SID_NAME = PLSExtProc) 
          (ORACLE_HOME = e:oracleproduct10.2.0db_1
          (PROGRAM = extproc) 
        ) 
        (SID_DESC = 
          (GLOBAL_DBNAME = oracle) 
          (ORACLE_HOME = e:oracleproduct10.2.0db_1
          (SID_NAME = oracle) 
        ) 
      ) 
    LISTENER = 
      (DESCRIPTION_LIST = 
        (DESCRIPTION = 
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
        ) 
      ) 
    红字部分改成oracle创建时候的sid 保存退出。

    ---------------------------------------------------------------------

    (SID_DESC = 
          (GLOBAL_DBNAME = oracle) 
          (ORACLE_HOME = e:oracleproduct10.2.0db_1
          (SID_NAME = oracle) 
        ) 

    GLOBAL_DBNAME= 的内容是用SYSTEM用户登录之后新建sql执行以下代码  :SELECT   NAME   FROM   v$database;  查询出来的数据就是等号后面的内容,切记两个红色字体的名称一定要相同

    如果没有这段代码请复制到你的文件中,然后把ORACLE_HOME这个路径修改一下切记两个蓝色路径一定要相同

    ----------------------------------------------------------------------

  • 相关阅读:
    HBase 使用与原理总结
    Java8 的一些使用总结
    对Redis的一些理解
    BERT模型源码解析 -- 转载
    BERT原理解析 -- 转载
    SQL 多表查询之 where和INNER JOIN
    Spark 数据处理相关代码
    Sql实战 1.单表复用进行比较排名
    LeetCode 47.括号生成 DFS递归
    LeetCode 46.机器人的运动范围
  • 原文地址:https://www.cnblogs.com/lijinze-tsinghua/p/8577023.html
Copyright © 2011-2022 走看看