Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)怎么解决
时间: 2023-11-20 14:57:51 浏览: 118
该错误表示用户'root'@'localhost'的访问被拒绝,可能是由于密码错误或权限不足导致的。以下是一些可能的解决方法:
1.检查密码是否正确,可以尝试重置密码并更新db.properties文件中的密码。
2.检查用户是否具有足够的权限来访问数据库。可以尝试授予用户更高的权限或创建一个新用户并授予适当的权限。
3.检查数据库是否正在运行,并确保可以从应用程序服务器访问它。
4.检查防火墙设置,确保允许从应用程序服务器访问数据库。
5.检查数据库驱动程序是否正确安装,并确保在应用程序中正确加载。
6.检查db.properties文件中的其他配置是否正确,例如URL和驱动程序类名。
以下是一个可能的解决方案:
```java
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false", "root", "123456");
// 执行查询等操作
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
while (rs.next()) {
System.out.println(rs.getString("username"));
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
```
阅读全文