【发布时间】:2012-05-20 17:02:38
【问题描述】:
我正在尝试测试与我的数据库的连接,但我不断收到以下错误
java.sql.SQLException: Access denied for user 'db'@'localhost' (using password: YES)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at ConnectingToDB.main(ConnectingToDB.java:18)
我的代码如下。错误发生在线路上 "conn = DriverManager.getConnection(url+dbName,userName,password);"
public class ConnectingToDB
{
public static void main(String[] args)
{
System.out.println("MySQL Connect Example.");
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "steven";
String driver = "com.mysql.jdbc.Driver";
String userName = "db";
String password = "db";
try
{
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
System.out.println("Connected to the database");
conn.close();
System.out.println("Disconnected from database");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
确保您的用户名和密码正确,并且他们可以从本地/远程机器访问数据库
-
conn = DriverManager.getConnection(url+dbName,userName,password);- 不应该有,而不是+? -
您确定密码正确吗?
-
@AndriusNaruševičius
url+dbName = jdbc:mysql://localhost:3306/steven这是连接 mysql 的有效 url -
您是否尝试过使用其他客户端(如 MySQL Workbench)以相同的用户/密码连接到 steven 数据库?