0

我正在尝试测试与我的数据库的连接,但我不断收到以下错误

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();
   }
 }

}

4

3 回答 3

2

如您所见,您的凭据由 MySql 处理,但被拒绝,这意味着问题可能与凭据没有直接关系,因为如果凭据错误,则错误会有所不同,然后被拒绝。当凭据被拒绝时,问题主要与:

  1. 权限问题 - 解决方案>>授予使用“本地主机”中的“db”的权限
  2. 您的连接字符串看起来不错,但有时字符串编码会导致此错误
  3. 一些已安装的组件正在干扰 MySql -> 检查组件安装

尝试逐一排除上述步骤..

于 2012-05-20T17:52:19.503 回答
0

LOCALHOST 和“机器名”与 MySQL 不同。我会从命令行检查您是否可以连接到本地主机:

mysql -hlocalhost -udb -pdb steven

如果失败,请使用适当的权限连接并运行它:

create user db@localhost identified by 'db';
grant select on steven.* to db@localhost;
于 2012-05-20T18:41:24.697 回答
0

你应该检查你的mysql中是否存在db@localhost 。否则,使用必要的权限创建此用户配置文件。

CREATE USER user_specification
    [, user_specification] ...

user_specification:
    user [IDENTIFIED BY [PASSWORD] 'password']

有关详细信息,请查看CREATE USER 语法

于 2012-05-20T17:08:47.457 回答