使用pl/sql developer登陆不了oracle

1,Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务

  这里最主要的原因在于:(参考:https://www.cnblogs.com/shangshan/p/6359880.html   https://blog.csdn.net/lwpoor123/article/details/78327080)

  数据库动态注册不生效,导致监听器无法识别客户端连接符中提供的服务名,从而拒绝建立数据库连接,所以就需要对监听器配置做修改。最简单的方法是:由动态注册改为静态注册。

  

  

  

  对于这种错误,必须要明白与oracle数据库建立连接的原理:

  动态注册或是静态注册,这个“注册”就是将数据库作为一个“服务”注册到“监听器”。客户端不需要知道“数据库名和实例名”,只需要知道该数据库对外提供的服务名就可以申请连接到数据库,动态注册就是在监听器配置文件中不明确的声明数据库实例和服务名,而是在数据库启动时才由数据库自动注册到监听器,静态注册就是在监听器配置文件中明确声明数据库实例和服务名。

  LISTENER参数就是监听器的配置,其中,PROTOCOL参数是协议名,一般为TCP,HOST参数是地址,可以写IP地址、服务器名、localhost、127.0.0.1,PORT参数是端口号,默认为1521。

  如果还是不行,那一定是tnsnames.ora配置有误:

  

扫描二维码关注公众号,回复: 5454822 查看本文章

  

  如果没有上面红色框中的内容,则必须进行下面的配置:

  

  将红色框中的内容更改为:

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

  这个配置和tnsnames.ora的配置是一样,可见在启动的时候加载INITorcl.ORA的时候,加载的LISTENER_ORCL参数,而这个LISTENER_ORCL参数实际引用tnsnames.ora的配置。

  如果没有,在使用sqlplus进入的时候报错:

  sqlplus进入数据库的方式:

  

  连接数据库,以系统dba权限(这样才能最大权限操作数据库,比如更改密码)

  

  接着使用startup命令装载数据,就会爆出下面的错误:

  

  如果还是不行,使用startup还是报错,详细参考:https://blog.csdn.net/baidu_32383657/article/details/53020624

   记得重启相关服务

   

2,修改密码

  使用sqlplus进入,

  

  alter user XXX identified by ****; 将XXX用户的密码重置为***;

  这样就能使用新密码在pl/sql developer中重新登陆。

猜你喜欢

转载自www.cnblogs.com/lirenhe/p/10491393.html