2015-09-29 114 views
0

我下载了Oracle数据库oracle-xe-11.2.0-1.0.x86_64.rpm。安装后,我将默认密码设置为passwordRHEL6无法连接到本地oracle db

然后我下载并安装instantclient-basicinstantclient-sqlplus。 我~/.bash_profile路径:

ORACLE_HOME=/usr/lib/oracle/11.2/client64 
PATH=$ORACLE_HOME/bin:$PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib 
export ORACLE_HOME 
export LD_LIBRARY_PATH 
export PATH 

然后我试图从SQLPLUS作为登录:sqlplus system,并输入密码password。它给了我错误ORA-12162: TNS:net service name is incorrectly specified

我在网上查了一下,似乎如果我做了这些步骤,它应该工作。

类似的问题链接:https://access.redhat.com/solutions/281843

+0

使用lsnrctl 启动侦听器start – Satya

回答

1

你需要设置你的ORACLE_SID环境变量,以配合您安装了数据库/创建。 This is mentioned in the documentation。如果没有一套:

$ echo $ORACLE_SID 

$ sqlplus -s -l x/y 
ERROR: 
ORA-12162: TNS:net service name is incorrectly specified 


SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus 

设置完后:

$ export ORACLE_SID=XE 
$ ./sqlplus -s -l x/y 
ERROR: 
ORA-01017: invalid username/password; login denied 


SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus 

凡ORA-01017是因为我使用了假证件,但你可以看到它在谈论到数据库中,现在来验证这些。

您可以在.bash_profile中设置ORACLE_SID以及其他环境变量。

您也可以通过SQL * Net进行连接,但不设置$ORACLE_SID或覆盖它。如果你的听众正在运行(lsnrctl status检查),您可以使用您的tnsnames.ora文件中定义的别名,它通常会匹配SID:

$ sqlplus x/[email protected] 

或没有文件,你可以使用easy connect语法:

$ sqlplus x/[email protected]//localhost:1521/XE 

它采用侦听器实际正在侦听的主机名/ IP地址和端口(也可以从lsnrctl status获取)和数据库实例的服务名称 - 通常也与SID相同或相似,我认为你的情况将会是XE。

您可以read more in the documentation

顺便说一下,您似乎正在根据您的$PATH设置获取完整客户端,而不是即时客户端,因此您可能无需单独下载。

+0

谢谢。我知道这个问题似乎很愚蠢。我的安装方法是否正确?我的同事使用这种方法安装在centos中。但其他一些文章使用磁盘安装或从http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index-092322.html下载软件包 – SnowWolf

+0

如果您已经遵循XE安装文档,那么它应该没问题 - 你还没有说过你做过什么奇怪的事情。安装即时客户端也可能有点多余。但是,如果创建正确,并且您已配置并运行侦听器,则可以使用客户端(或其他人,如SQL Developer)访问数据库。 –