java.sql.SQLException: Access denied for user ''@'192.168.xxx.2' (using password: NO
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.sql.SQLException: Access denied for user ''@'192.168.xxx.2' (using password: NO相关的知识,希望对你有一定的参考价值。
sparkstreaming往mysql写数据,连接linux虚拟机的mysql数据库报了这个错,密码没有错,在虚拟机上可以连上,mysql的权限也改过了,到底是哪的错?jdbc的配置文件:db.url="jdbc:mysql://192.168.xxx.2:3306/db1?characterEncoding=utf-8"
db.user ="root"
db.passwd="root"
db.driver="com.mysql.jdbc.Driver"
而且我的虚拟机ip地址是192.168.xxx.3,为什么一直报2的错?
~~~~~~~~~~~~~~~~~~~~~ 参考技术A 允许mysql的root远程访问
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~本回答被提问者和网友采纳
java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误
【中文标题】java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误【英文标题】:java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 【发布时间】:2012-11-06 10:43:22 【问题描述】:我收到以下 SQL 异常,但我不知道此异常的根本原因是什么?我也在关闭数据库连接和语句。
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded
ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded
ORA-01000: maximum open cursors exceeded
以下是我的代码:
while(true)
Statement stmt2 = conn1.createStatement();
ResultSet rs2 = null;
int rec_count=0;
rs2 = stmt2.executeQuery("select count(*) as cnt from some_table");
while(rs2.next())
rec_count = rs2.getInt("cnt");
if(rec_count>0)
update_qry_b_trg1 = "update some_table set to_be_triggered=1,algo_status='D',dealer_id='HD001',price_trig_date=sysdate where buy_sell = 'SELL' and ordertype = 'BNLD' and to_be_triggered = 0 and algo_status = 'P' and Mod(group_ref_no,5)="+th_id;
String final_qry = "BEGIN \n"+update_qry_b_trg1+";\n"+";\n END;";
int rows = stmt1.executeUpdate(final_qry);
stmt1.close();
rs2.close();
stmt2.close();
【问题讨论】:
您容易受到 SQL 注入的攻击。请阅读prepared statements 来解决此问题。 您粘贴的代码似乎没有任何光标泄漏。我建议您在运行时检查数据库上的 v$open_cursor 以确定发生了什么。本的观点也很有效, th_id 不应该只是粘贴在那里。另外,如果您只在表中查找 1 行,请不要仅 count(*) 至少添加 where rownum = 1 以减少您所做的工作。 为什么您的更新查询包含在 BEGIN 和 END 中?我认为您的更新查询正在作为 PROCEDURE 执行,并且由于您的 while 循环是无限的,因此会导致问题。 【参考方案1】:无论在哪里初始化 stmt1,最好在 finally 块中关闭它。在您的情况下,您将在 if 条件下关闭它。如果条件不通过,语句将保持打开状态,您将得到这个
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
您还需要在 while 循环中运行它,因此您需要确保关闭每个打开的语句。
【讨论】:
以上是关于java.sql.SQLException: Access denied for user ''@'192.168.xxx.2' (using password: NO的主要内容,如果未能解决你的问题,请参考以下文章
Oracle DB:java.sql.SQLException:关闭连接
Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er
java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误
Java:Sqlexception:位置不支持的 SQL92 令牌:178