我们有一个本地运行的应用程序,我们遇到了以下错误:
ORA-12514: TNS:监听器当前不知道所请求的服务
在连接描述符中
我已经使用正确解决的tnspring测试了连接
我尝试使用SQLPlus进行连接,但失败了,出现了与上面相同的错误。我在SQLPlus中使用了以下语法:
sqlplus username/password@addressname[or host name]
我们已核实:
服务器上的TNS Listener正在运行。
服务器上的Oracle本身正在运行。
我们不知道这个环境发生了什么变化。
还有什么可以测试的吗?
以我的Linux环境为例,oracle文件在ORACLE_HOME/bin以“红色”颜色突出显示,具有如下不同的权限:
我修改了这个文件的权限如下:
1)停止Oracle -> sudo systemctl Stop Oracle .service
2)修改“ORACLE_HOME/bin”目录下的oracle文件权限为“sudo chmod 777 oracle”
3)启动Oracle -> sudo systemctl Start Oracle .service
修改完成后,我使用lsnrctl status检查listener的状态。在这里,我可以看到db实例成功加载。
但是,我只能使用sqldeveloper连接,使用sqlplus命令行我得到ORA-12547: TNS失联错误。因此,这可以作为使用sqldeveloper的快速解决方案。
注意:修改权限前请备份oracle文件。