Oracle数据库使用sqlplus时的连接错误与方向键乱码解决

所属分类: 数据库 / oracle 阅读数: 280
收藏 0 赞 0 分享

连接错误
安装好以后,我登录企业后台(http://ubuntu:1158/em)报错,用sqlplus连接oracle也报错。
一,遇到的错误如下
1,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach)
2,ORA-28547: connection to server failed, probable Oracle Net admin error (DBD ERROR: OCISessionBegin)
3,sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
二,解决方法如下
1.解决问题一,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach)
(1),找到tnsname.ora,listerner.ora的位置

root@ubuntu:/opt/ora10/network/admin# ls
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora

(2),修改listerner.ora配置
将(SID_NAME = PLSExtProc)改成(SID_NAME = ora1),SID_NAME在oracle管理后台http://ubuntu:1158/em中可以看到
2.解决问题二,ORA-28547: connection to server failed, probable Oracle Net admin error (DBD ERROR: 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 -i oracle来查看一下。启动起来就不会有这个问题了。

SQL> startup
ORACLE instance started.

3.解决问题三,sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
当我用zhangying@ubuntu:~$ sqlplus / as sysdba去登录时,提示上面的错误,解决方法如下
chmod -R a+rX /opt/ora10/
这里/opt/ora10是的我$ORACLE_HOME目录,加上后可以进去了。

方向键乱码
用sqlplus连接oracle,方向键老是乱码,SQL> ^[[A^[[A^[[B^[[B^[[D^,linux 用的是ubuntu 10.10 解决方法如下
一,下载安装readline

apt-get install libreadline5-dev  //ubuntu要安装这个 
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz 
tar zxvf readline-6.2.tar.gz 
cd readline-6.2 
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001 
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001.sig 
patch -p0 < readline62-001  //打补丁 
./configure 
make && make install 

注意:-p后面的是零,不是字母o。如果不安装apt-get install libreadline5-dev这个话,安装rlwrap,./configure老是报错。
二,安装rlwrap

wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz 
tar zxvf rlwrap-0.37.tar.gz 
cd rlwrap-0.37 
./configure 
make && make install 

注意:先装readline,然后安装rlwrap,不然./configure的时候会报错的,如下

configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!

三,修改用户根目录下的.bashrc

# some more ls aliases 
 alias ll='ls -alF' 
 alias la='ls -A' 
 alias l='ls -CF' 
 
 alias sqlplus='rlwrap sqlplus'  //添加这一行 

修改.bashrc要重起电脑。如果没有.bashrc,修改.bash_profile或者.profile文件。

更多精彩内容其他人还在看

oracle(plsql)生成流水号

这篇文章主要介绍了oracle(plsql)生成流水号,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle中decode函数的使用方法

这篇文章主要介绍了oracle中decode函数的使用方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle数据远程连接的四种设置方法和注意事项

Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍
收藏 0 赞 0 分享

oracle表空间中空表统计方法示例介绍

这篇文章主要介绍了oracle表空间中空表统计方法,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle用户权限、角色管理详解

这篇文章主要介绍了oracle用户权限、角色管理的使用和示例,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle用户权限管理使用详解

这篇文章主要介绍了oracle用户权限管理使用方法,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle生成动态前缀且自增号码的函数分享

这篇文章主要介绍了oracle生成动态前缀且自增号码的函数,需要的朋友可以参考下
收藏 0 赞 0 分享

45个非常有用的 Oracle 查询语句小结

这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询。这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧
收藏 0 赞 0 分享

oracle监控某表变动触发器例子(监控增,删,改)

这篇文章主要介绍了oracle监控某表变动触发器例子(监控增,删,改),用于监控某表的变动并生成日志记录到另一个表,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle 数据库隔离级别学习

这篇文章主要介绍了oracle数据库的隔离级别相关的知识,数据库操作的隔离级别,有需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多