Oracle用户密码包含特殊字符导致sqlplus无法正常登录解决

2014-11-24 17:23:43 · 作者: · 浏览: 0

今天碰到一个比较奇怪的问题:


在客户端上使用sqlplus用普通用户可以登录,但是system以及sys用户均无法登录,提示ORA-12154: TNS: 无法解析指定的连接标识符


[@more@]SQL> conn system@webdata
输入口令:
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符


SQL> conn xgplat@webdata
输入口令:
已连接。


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的密码,再次尝试就一切正常了