第一种情况:

启动tomcat后,前台输入账号密码,提示:java.sql.SQLException:Listener refused the  connection with the following error:ORA-12505,TNS:listener does not currently know of SID given in connect descriptor

去后台尝试连接数据库,提示:ORA-12541:TNS :无监听程序

这是因为oracle数据库监听没启

开启oracle的监听,尝试连接数据库,提示:ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

这是因为oracle服务没启

 

linux下启动oracle监听和服务

su - oracle       //切换到oracle用户模式下

sqlplus /nolog  //登录sqlplus

SQL> connect /as sysdba  //连接oracle

lsnrctl start  //启动监听

startup //启动数据库

 

windows下启动oracle监听和服务

打开任务管理器,找到如下服务,启动就好

 

第二种情况:

 

Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

 

 

这个问题是数据库监听的配置文件中sid不正确,网上查了原因,也许是网络配置ip之后出现的问题,而公司的云服务器之前正常没问题,最近管理员确实改过网络配置,并且今天重启了。

解决:进入数据库安装目录下,找到tnsnames.ora文件,把其中的service_name改成数据库正确的sid值,默认的是orcl

\network\admin\tnsnames.ora:
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = ORCL)
      (SERVICE_NAME = ORCL)
    )
重启监听即可
 
若是碰到继续报错:17410 提示无法从套接字获取更多数据如何解决,则进入数据库安装目录下,找到listener.ora文件,将(PROGRAM = extproc)这行前面加#注释掉,如下:
#(PROGRAM = extproc)
并且,检查配置文件中HOST是否为主机名
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521))
    )
重启监听,数据库即可连接

 

更多推荐