Oracle数据库使用sqlplus时的连接错误与方向键乱码解决
连接错误
安装好以后,我登录企业后台(http://ubuntu:1158/em)报错,用sqlplus连接oracle也报错。
一,遇到的错误如下
1,ORA-12505:TNS:listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptor(DBDERROR:OCIServerAttach)
2,ORA-28547:connectiontoserverfailed,probableOracleNetadminerror(DBDERROR:OCISessionBegin)
3,sqlplus:errorwhileloadingsharedlibraries:libsqlplus.so:cannotopensharedobjectfile:Nosuchfileordirectory
二,解决方法如下
1.解决问题一,ORA-12505:TNS:listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptor(DBDERROR:OCIServerAttach)
(1),找到tnsname.ora,listerner.ora的位置
root@ubuntu:/opt/ora10/network/admin#ls
listener.orasamplesshrept.lstsqlnet.oratnsnames.ora
(2),修改listerner.ora配置
将(SID_NAME=PLSExtProc)改成(SID_NAME=ora1),SID_NAME在oracle管理后台http://ubuntu:1158/em中可以看到
2.解决问题二,ORA-28547:connectiontoserverfailed,probableOracleNetadminerror(DBDERROR:OCISessionBegin)
问题一解决完后,就冒出这个问题,我在网上查了一下,千篇一律说这样解决,其实根本没有用。
(1).修改oracle的网络配置文件,具体做法是:在oracle安装目录下搜索sqlnet.ora文件,一般在$NETWORKADMIN目录下,
用记事本打开把文件中的一行:
SQLNET_AUTHENTICATION_SERVICES=(NTS)
修改为:
SQLNET_AUTHENTICATION_SERVICES=(NONE)
我发现我的sqlnet.ora根本没有这项目设置,我的sqlnet.ora里面只有一句是NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
(2).同时修改监听器配置文件,具体做法是:在oracle安装目录下搜索listener.ora文件,一般在$NETWORKADMIN目录下,把主机名用ip地址代替,例如(ADDRESS=(PROTOCOL=TCP)(HOST=HBONLINE1)(PORT=1523))改为(ADDRESS=(PROTOCOL=TCP)(HOST=168.168.168.42)(PORT=1523))
关于这种点,我更是不明白了,为什么换成ip,HOST后面对应的值,在/etc/hosts里面有映射,没必要换成ip.
根本原因是oracle服务根本没起来,可以通过ps-e|grep-ioracle来查看一下。启动起来就不会有这个问题了。
SQL>startup
ORACLEinstancestarted.
3.解决问题三,sqlplus:errorwhileloadingsharedlibraries:libsqlplus.so:cannotopensharedobjectfile:Nosuchfileordirectory
当我用zhangying@ubuntu:~$sqlplus/assysdba去登录时,提示上面的错误,解决方法如下
chmod-Ra+rX/opt/ora10/
这里/opt/ora10是的我$ORACLE_HOME目录,加上后可以进去了。
方向键乱码
用sqlplus连接oracle,方向键老是乱码,SQL>^[[A^[[A^[[B^[[B^[[D^,linux用的是ubuntu10.10解决方法如下
一,下载安装readline
apt-getinstalllibreadline5-dev//ubuntu要安装这个 wgetftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz tarzxvfreadline-6.2.tar.gz cdreadline-6.2 wgetftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001 wgetftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001.sig patch-p0<readline62-001//打补丁 ./configure make&&makeinstall
注意:-p后面的是零,不是字母o。如果不安装apt-getinstalllibreadline5-dev这个话,安装rlwrap,./configure老是报错。
二,安装rlwrap
wgethttp://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz tarzxvfrlwrap-0.37.tar.gz cdrlwrap-0.37 ./configure make&&makeinstall
注意:先装readline,然后安装rlwrap,不然./configure的时候会报错的,如下
configure:error: YouneedtheGNUreadlinelibrary(ftp://ftp.gnu.org/gnu/readline/)tobuild thisprogram!
三,修改用户根目录下的.bashrc
#somemorelsaliases aliasll='ls-alF' aliasla='ls-A' aliasl='ls-CF' aliassqlplus='rlwrapsqlplus'//添加这一行
修改.bashrc要重起电脑。如果没有.bashrc,修改.bash_profile或者.profile文件。