Oracle用户密码包含特殊字符导致sqlplus无法正常登录解决
今天碰到一个比较奇怪的问题:
在客户端上使用sqlplus用普通用户可以登录,但是system以及sys用户均无法登录,提示ORA-12154: TNS: 无法解析指定的连接标识符
[@more@]SQL> conn system@webdata
输入口令:
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
SQL> conn xgplat@webdata
输入口令:
已连接。
本来以为客户端是32位的缘故,就在Oracle服务器上用sqlplus登录,也还是一样
SQL> conn system@webdata
Enter password:
ERROR:
ORA-12541: TNS:no listener
SQL> conn xgplat@webdata
Enter password:
Connected.
问了一些人大家都比较迷糊,搞不清什么问题。偶然看到有人说是不是和密码文件有关,这时我才想到我的system/sys用户的密码中都包含一个@字符。
比如我的密码是123@456,那使用sqlplus登录的时候就理解成sqlplus system/123@456@webdata,这样sqlplus就理解成123后面的就是数据库的连接字符串,这样自然就报错并提示TNS: 无法解析指定的连接标识符或no listener
之后在服务器上用sqlplus / as sysdba登录后修改sys/system的密码,再次尝试就一切正常了
相关推荐
linux环境下使用sqlplus,在回删时往往会出现一串的乱码。出现乱码是由于oracle的sqlplus不使用gnu的readline库造成的。 或者把sttyerase^H添加到.cshrc中。