sqlplus: error while loading shared libraries的解決方案

zhenghaishu發表於2014-09-06

sqlplus: error while loading shared librari的解決方案


環境:VMWare Workstation + Redhat + Oracle

問題產生:
建好oracle庫後,執行sqlplus命令:
[oracle@localhost database]$ sqlplus /nolog
sqlplus: error while loading shared libraries: /oracle/app/product/11.2.0/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied


問題原因:安裝LINUX時開啟了SELinux


解決方案:關閉SELinux

第一種方法
(1)檢視SELinux的狀態,若為Enforcing表示SELinux為開啟狀態
[root@mydb]# getenforce
Enforcing

(2)執行setenforce 0將SELinux設為permissive模式(即臨時關閉SElinux)
[root@mydb]# setenforce 0

(3)驗證上步操作的結果
[root@mydb]# getenforce
Permissive

這種方法的缺點是當系統重啟的時候,SELinux又恢復為Enforcing狀態,執行sqlplus仍然會報錯。

第二種方法
用root賬戶將/etc/selinux/config中的SELinux=enforcing改為SELinux=disabled,改完之後如下所示:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

重啟系統讓設定生效:
# reboot

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29485627/viewspace-1265239/,如需轉載,請註明出處,否則將追究法律責任。

相關文章