-
连接oracle报错:ORA-01017:invalid username/password:logon denied15
今天在客户那里发现一个很是诡异的问题:
登录web项目后,进行登录,系统立即报错,报错如下:
java.sql.SQLException:ORA-01017:invalid username/password:logon denied
at oracle.jdbc.dbaccess.DBEroor.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.03log.receive2nd(03log.java:496)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:278)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at **.datasource.ConnectionPool.createConnectionSlit(ConnectionPool.java:295)
at **.datasource.ConnectionPool.getConnection(ConnectionPool.java:358)
at **.datasource.DataSourceUtils.getConnection(DataSourceUntils.java:386)
at **.query.Pagination.getResultSet(Pagination.java:218)
at **.jsp.index_jsp._jspService(index_jsp.java:296)
后面出现自己定义的报错:Failed to create new connection.,maybe due to the limitation of resource!
接着:java.sql.SQLException:Get ConnectionPool fail.null
at **.datasource.ConnectionPool.createConnectionSlit(ConnectionPool.java:295)
at **.datasource.ConnectionPool.getConnection(ConnectionPool.java:358)
at **.datasource.DataSourceUtils.getConnection(DataSourceUntils.java:386)
at **.query.Pagination.getResultSet(Pagination.java:218)
at **.jsp.index_jsp._jspService(index_jsp.java:296)
其实提示的原因很明显,就是说我在ConnectionPool.java第295行利用在该java文件中定义好的用户名和密码去创建连接时,提示连接失败。
我解决方法如下:
(1)首先确认了该用户名和密码无误,因为自从系统部署后没有更改过任何属性配置文件;
(2)先将web项目所在的服务器进行了tomcat的重启;重启后依旧;
(3)怀疑oracle服务器down掉了,于是用oracle的Enterprise Manager Console,用该用户也能登录上。
由于没有配置PL/SQL工具,而且该数据库为私密数据,因此没有用ConnectionPool.java配置的用户名和密码进行登录,不知道有没有影响
网上也查了一些内容,但是感觉都帮助不大,希望各位大大能给我出出主意,该项目星期一要继续使用,时间紧迫啊,谢谢各位!
上面涉及函数语句如下:
ConnectionPool.java
private String jdbcDriver = "oracle.jdbc.driver.OracleDriver";
private String jdbcUrl = "jdbc:oracle:thin:@serverIP:1521:ora81";
private String user = "admin"; // "root";
private String password = "1234"; // "";
private ConnectionSlit createConnectionSlit() {
try {
ConnectionSlit slit = new ConnectionSlit();
slit.connection = DriverManager.getConnection(jdbcUrl, user,
password);
slit.used = false;
slit.start = 0;
slit.time = 0;
return slit;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public Connection getConnection() {
Thread thread = Thread.currentThread();
String dumpString = "";
if (dumpStackTrace) {
System.out.println("Thread: " + thread
+ " is requesting connection!");
try {
throw new Exception("thread dump");
} catch (Exception e) {
ExceptionSerializer es = new ExceptionSerializer(e);
dumpString = es.serialize();
}
}
synchronized (pools) {
while (true) {
ConnectionSlit slit = findFreeSlit();
if (slit != null) {
slit.start = System.currentTimeMillis();
slit.used = true;
slit.thread = thread;
slit.dumpStack = dumpString;
return slit.connection;
} else {
if (MAX_SIZE != 0 && pools.size() == MAX_SIZE) {
try {
System.out
.println("waiting for connection to be freed...");
pools.wait();
} catch (InterruptedException ie) {
}
} else {
slit = [color=red]createConnectionSlit();
if (slit == null) {
System.err
.println("Failed to create new connection, maybe due to the limitation of resource!");[/color]
return null;
}
slit.start = System.currentTimeMillis();
slit.used = true;
slit.thread = thread;
slit.dumpStack = dumpString;
pools.addElement(slit);
return slit.connection;
}
}
}
}
}
DataSourceUntils.java
public Connection getConnection() throws SQLException {
Connection conn = null;
ConnectionPool cp=ConnectionPool.getConnectionPool(datasource);
try {
if (cp != null) {
cp = ConnectionPool.getConnectionPool(datasource);
conn = cp.getConnection();
conn.setAutoCommit(true);
//System.out.println(datasource+" after get and count is "+cp.getConnectionCount());
return conn;
}
}
catch (Exception ne) {
throw new SQLException("Get ConnectionPool fail." + ne.getMessage());
}
return conn;
}
Pagination.java
DataSourceUtils dbu1 = new DataSourceUtils("zzz");
Connection conn1 = null;
try {
try {
PreparedStatement stmt1;
ResultSet rs1;
conn1 = dbu1.getConnection();
stmt1 = conn1.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs1 = stmt1.executeQuery();
rs1.last();
totalRows = rs1.getRow();
2010年10月15日 23:20
1个答案 按时间排序 按投票排序
-
无效的用户名和密码,拒绝访问是吧。
很显然这是一个典型的sysdba登录的问题。
我猜可能是被锁住了。
oracle 数据库每一个月就对用户加锁,用户要登陆oracle 数据库首页[system/自设的口令] ——〉管理——〉用户管理——〉设置用户为“未锁定”——〉然后进入命令行——〉connect——〉OK!
如果此方法不行,在试一试下面的吧。
----------------------
首先要查看sqlnet文件。SQLNET.AUTHENTICATION_SERVICES= (NONE) 启动密码文件验证了,
接着查看$ORACLE_HOME/dbs/下有没有orapw$ORACLE_SID的文件,确定有。
接着查看remote_login_passwordfile的值,我估计这时他的值一定是NONE,而不是EXCLUSIVE
不过怎么来确定这个推断了。remote_login_passwordfile是init的参数,可以通过show parameters remote_login_passwordfile来查看,也可以直接查看spfile文件,spfile虽然是二进制文件,不过里面的内容是看到文本的
more $ORACLE_HOME/dbs/spfile$SID.ora.
最后确实是否是remote_login_passwordfile=none。
如果确实是none的话,
问题大致上应该确定了,就是remote_login_passwordfile的设置问题了。先屏蔽掉sqlnet.ora里SQLNET.AUTHENTICATION_SERVICES= (NONE)使得本机的 sqlplus “/ as sysdba” 可以进去
SQL>startup mount
SQL>show parameters remote_login_passwordfile;
这时出来的值是none,修改值为exclusive
SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
SQL>shutdown immediate
SQL>startup
SQL>select * from v$pwfile_users;
看有没有结果出来 ok2010年10月16日 08:30
相关推荐
- ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一-附件资源
- Oracle ORA-01017: invalid username/password;logon denied问题解决
- oracle空实例连接报错01017,Oracle SQL Developer 连接oracle报错ORA-01017: invalid username/password; logon denied...
- oracle远程登录 01017,远程登录sys用户报错:ORA-01017: invalid username/password; logon denied...
- Oracle数据库报错,ORA-01017: invalid username/password; logon denied Oracle
相关推荐
ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一-附件资源
ORA-01017: invalid username/password; logon denied,本人学生一枚,自己做了一个asp.net三层架构的demo,需要连接Oracle数据库,里面的字符串为: private static string DBConnectstring = "Data Source=...
- `java.sql.SQLException: ORA-01017: invalid username/password; logon denied`: 输入的用户名或密码不正确。检查数据库凭证的准确性。 3. **网络问题** - `java.sql.SQLException: ORA-01034: ORACLE not ...
3. ORA-01017: invalid username/password; logon denied 遇到登录被拒绝的问题,首先要确认用户名和密码是否正确,然后检查用户是否有权限登录。您可以通过Oracle提供的sqlplus工具来创建新用户和授予权限。例如,...
- **错误消息**:`[Error] ORACLE连接错误: ORA-01017: invalid username/password; logon denied` - **源代码位置**:`SAS.EG.SDS.Model` 根据错误报告和技术信息,可以看出问题在于逻辑库“Retail_val”的路径...
错误消息可能类似于:“ORA-01017: invalid username/password; logon denied”。这是因为数据库实例尚未启动,无法接受连接请求。 ##### 2. 解决连接问题 - **解锁账户** 如果连接失败是因为账户被锁定,可以...
- **常见错误**:“ORA-01017: invalid username/password; logon denied” - 这个错误通常意味着提供的用户名或密码无效。 - **解决方案**: - 检查用户名和密码是否正确。 - 如果忘记了密码,可以联系数据库...
ORA-01017: invalid username/password; logon denied ``` #### 三、密码文件与SYS用户 在Oracle中,`SYS`用户默认具有`SYSDBA`权限。这意味着`SYS`用户可以通过特定的命令以`SYSDBA`身份登录,无需提供密码。...
该问题通常表现为错误提示:“ORA-01017: Invalid username/password; logon denied”。此错误可能由多种因素导致,如用户名或密码错误、网络配置问题等。但根据提供的上下文信息,本案例中问题根源在于FIPS兼容性...
登录失败:“ORA-01017: invalid username/password; logon denied” 如果你尝试使用默认的 `sys` 或 `system` 用户名和密码登录时遇到了这个问题,那么可能是因为你在安装或配置过程中更改了这些用户的默认密码...
当尝试次数达到3次时,账户将被锁定,之后的登录尝试将会收到`ORA-01017: invalid username/password; logon denied`错误。 要解锁已锁定的账户,通常需要执行以下操作: ```sql ALTER USER username ACCOUNT ...
7. **ORA-01017: invalid username/password; logon denied**:输入的用户名或密码无效,检查输入是否正确,并确保与数据库中的信息匹配。 8. **adpatch Errors: The Given ORACLE Password Is Not The Correct ...