Error:java.sql.SQLException: Access denied for user 'root@localhost'@'localhost' (using password: YES)

Error:java.sql.SQLException: Access denied for user 'root@localhost'@'localhost' (using password: YES)

我在我的 netbeans 上使用 mysql (XAMPP)。

我正在尝试查询

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION; 

但无法连接:

  ERROR: java.sql.SQLException:Access denied for user 'root'@'localhost'

这里是完整的代码:

    public class NextHandler implements ActionListener{
    @Override
    public void actionPerformed (java.awt.event.ActionEvent evt){
    try{

        String url="jdbc:mysql://localhost:3306/database2";
        String username= "root";
        String password= " ";
        Connection con=DriverManager.getConnection(url, username,password);
        Statement stat=con.createStatement();
        String Query=
        "INSERT INTO donor_info(donor_id,donor_lastname,donor_firstname,donor_middlename,donor_age,donor_weight,donor_height,donor_gender,donor_contact_number,"
                + "medical_condition)VALUES ('"+txtdonorid.getText()+"','"+txtlname.getText()+"','"+txtfname.getText()+"','"+txtmname.getText()+"',"
                + "'"+txtage.getText()+"','"+txtweight.getText()+"','"+txtheight.getText()+"')";

        stat.execute(Query);
    JOptionPane.showMessageDialog(null,"Donor Added to Database");
    txtdonorid.setText(null);
    txtlname.setText(null);
    txtfname.setText(null);
    txtmname.setText(null);
    txtage.setText(null);
    txtweight.setText(null);
    txtheight.setText(null);

    }
    catch (SQLException ex){
       JOptionPane.showMessageDialog(null,ex.toString());
    }
    bloodtype f=new bloodtype();
    f.setVisible(true);
    dispose();
    f.run();
    }
        }


     public void run(){

    //setUndecorated(true);

     setSize(1920, 1200);
     setLocationRelativeTo(null);
     setVisible(true);
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }

      public static void main(String[] args) throws Exception{
      Class.forName("com.mysql.jdbc.Driver");
      donorinfo f = new donorinfo();
      f.run();
      }
      }

在你运行你的查询之后你必须运行

FLUSH PRIVILEGES

您的代码使用 space 作为密码。请将password =" "改为password=""

问题出在您的连接字符串上。 字符串密码 = " ";

改为String password = "root";

(如果仍然有错误,请在命令提示符下尝试此操作,看看会发生什么。
mysql -u root -p(按回车键)
密码:root