作者:mobiledu2502886985 | 来源:互联网 | 2023-05-17 14:16
测试一个JSP的工程,当我输入完用户名密码点击进入的时候就出现问题,应该我的数据库连接不上也可能是其他问题,提示错误为java.sql.SQLException:Accessdenied
测试一个JSP的工程,当我输入完用户名密码点击进入的时候就出现问题,应该我的数据库连接不上也可能是其他问题,提示错误为
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
我测试的其他项目工程都没问题,url以及用户名密码没问题,希望能给一点战略性的提示帮助解决,
数据库操作代码如下
package tool;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.fly.db.ConnectionFactory;
public class DatabaseConn {
public String DBDRIVER = "";
public String DBURL = "";
public String DBUSER = "";
public String DBPASS = "";
private static DatabaseConn factory = null;
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
/**
* 加载驱动
*/
public DatabaseConn() throws Exception{
DBDRIVER = "com.mysql.jdbc.Driver";
DBURL = "jdbc:mysql://localhost:3306/bms?useUnicode=true&characterEncoding=gbk";
DBUSER = "root";
DBPASS = "xiaoluo1370";
}
/**
* 连接数据库
* @return
*/
public static Connection getConnection() {
Connection conn = null;
if (factory == null) {
try {
factory = new DatabaseConn();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
try {
Class.forName(factory.DBDRIVER);
conn = DriverManager.getConnection(factory.DBURL, factory.DBUSER,
factory.DBPASS);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 查询记录操作
* @param sql
* @return
*/
public ResultSet executeQuery(String sql){
conn = getConnection();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(rs == null){
System.out.println("执行查询操作失败!");
}
return rs;
}
/**
* 修改,删除,更新记录操作
* @param sql
* @return
*/
public int executeUpdate(String sql){
int result = 0;
conn = getConnection();
try {
stmt = conn.createStatement();
result = stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("执行失败!");
result = 0;
}
return result;//执行影响的行数
}
/**
* 关闭数据库
*/
public void close(){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
31 个解决方案
http://blog.sina.com.cn/s/blog_6b6db50a0100m7ot.html
http://blog.csdn.net/lyflower/article/details/6137021
错误信息:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
root用户的密码YES无效。
看代码:
ublic DatabaseConn() throws Exception{
DBDRIVER = "com.mysql.jdbc.Driver";
DBURL = "jdbc:mysql://localhost:3306/bms?useUnicode=true&characterEncoding=gbk";
DBUSER = "root";
DBPASS = "xiaoluo1370";
}
root用户的密码是xiaoluo1370.
YES从哪来的,哪个是正确的代码,从这里入手看看。
密码错了,你装mysql的时候设置的密码叫是什么就把这里的密码改成那个。
你在装mysql的时候,那个时候叫你设置的密码,那么你现在需要的密码就是那个啊,如果忘记密码了,那么在安全模式下卸载mysql重装吧。。。。
装mysql 有个开启root用户远程连接权限的checkbox
骚年 是不是忘记勾选了
装mysql 有个开启root用户远程连接权限的checkbox
骚年 是不是忘记勾选了
装mysql 有个开启root用户远程连接权限的checkbox
骚年 是不是忘记勾选了
未给localhost root用户授权,新建一个localhost root用户,然后授权给他
create user 'root'@'localhost' identified by '你的密码';
grant all privileges on *.* to root@'localhost';
运行这两句sql语句后试下
未给localhost root用户授权,新建一个localhost root用户,然后授权给他
create user 'root'@'localhost' identified by '你的密码';
grant all privileges on *.* to root@'localhost';
运行这两句sql语句后试下
下一个图形化工具 用你代码上面的地址和账号密码测试下就知道了
下一个图形化工具 用你代码上面的地址和账号密码测试下就知道了
下一个图形化工具 用你代码上面的地址和账号密码测试下就知道了
运行了第一个语句提示是Operation CREATE USER failed for 'root'@'localhos
运行了第一个语句提示是Operation CREATE USER failed for 'root'@'localhos
运行了第一个语句提示是Operation CREATE USER failed for 'root'@'localhos
仔细检查你的jdbc地址
1:用户名密码错误
2:没有远程访问权限
我记得我见过这样的帖子,我当时也给了个方法,但是这个哥们到现在也没有结贴,也不知道我的方法对不,你可以看一下
http://bbs.csdn.net/topics/390363565