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

相关推荐