怎么样解决Linux中Oracle启动侦听报错TNS:permission denied的问题?

怎么样解决Linux中Oracle启动侦听报错TNS:permission denied的问题?

前言

最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过网上和咨询朋友,最终找到了解决方案,现在共享出来给有需要的朋友。

错误描述

[oracle@oracle ~]$ lsnrctl start 
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-MAR-2015 15:37:59
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12555: TNS:permission denied
 TNS-12560: TNS:protocol adapter error
 TNS-00525: Insufficient privilege for operation
 Linux Error: 1: Operation not permitted
Listener failed to start. See the error message(s) above...

解决方案

出现这个错误是由于没有 /var/tmp/.oracle 的读写权限引起的。由于开发环境没有严格管理,不知道哪位同学把此目录的所有者改成了root,导致 oracle 用户没有权限操作此目录。使用下面方式修正过来即可。

cd /var/tmp
chown oracle .oracle
chgrp oinstall .oracle
chmod 777 .oracle

看到网上有资料说 直接干掉 /var/tmp/.oracle 这个目录也是可以的,我没有尝试,不知道效果如何,这里仅作笔记。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。