ORA-01017: invalid username/password; logon denied异常的分析
今天在整合SpringMVC与mybatis的时候遇到了一个异常:
四月 24, 2017 10:37:31 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [springDispatcherServlet] in context with path [/Test0424SM_zhenghe] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: ORA-01017: invalid username/password; logon denied ] with root cause java.sql.SQLException: ORA-01017: invalid username/password; logon denied
以上错误是在搭建string+truts+ibatis框架的时候用spring链接oracle数据库的时候报的错误。
下面仔细分析一下:
首先最重要的一点你要确定你的账号密码可以登录plsql。
1.如果你的账号和密码可以登录plsql,那么证明你的用户名密码是没有错误的,只有可能是你的配置文件里面出错,仔细找一下是不是你的url驱动链接地址多了空格或者配置文件里面少了$符号,亦或者是字段名是特殊字段,譬如不能用username来定义用户名(username);再不然就要用系统用户登录plsql , 查询当前的所有用户: select * from dba_users; 查看状态是否被锁(LOCKED ),如果你数据库连接的用户被锁,.给帐号解锁alter user user1 account unlock; 有很多是用户被锁了导致的。
2.或者重新create一个用户,把报错的用户的所有权限转到新的用户上面。
3.还有就是一个登陆 sysdba和Normal的问题,有很多的时候就是这个问题困扰了开发者。
解决办法:
properties对象.put("user",admin);//用户
properties对象put("password",admin); //密码
有些连接时这样的代码,如果是oralce数据库的话,报上面你的错。你可以试着把下面的代码加上!
properties对象.put("internal_logon","sysdba");