【问题标题】:java.sql.SQLEXCEPTION: ACCES denied for user 'Name'@localhost' ( using passwprd : NO )java.sql.SQLEXCEPTION: ACCESS denied for userName'@localhost' (使用密码: NO)
【发布时间】:2021-12-27 12:57:41
【问题描述】:

我有一个航空公司系统管理项目,我在其中使用多个数据库。 第一个( db )工作正常。 当我尝试实施第二个时,我收到一条“拒绝访问”消息。

我从第一个数据库中复制粘贴了代码,但是我用第二个数据库的名称替换了第一个数据库的名称,如您所见,我更改了特定表的列名。

有人可以帮我解决这个问题吗? 我尝试将 skip-grant-tables 添加到 my.ini 中)'

package sample.my_project_uvt;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class MySqlConnectPassengers {
enter code here
    Connection conn = null;
    public  static  Connection ConnectDb(){

        try {
        
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/passengers");
            JOptionPane.showMessageDialog(null,"ConnectionEstablished");
            return conn;


        }catch (Exception e)
        {
            JOptionPane.showMessageDialog(null,e);
            return null;
        }
    }

    public static ObservableList<passengers> getDatauser(){


        Connection conn = ConnectDb();
        ObservableList<passengers>list= FXCollections.observableArrayList();

        try{

            PreparedStatement ps = conn.prepareStatement("SELECT * FROM `passengers`;");
            ResultSet rs = ps.executeQuery();
            while(rs.next())
            {
                list.add(new passengers(Integer.parseInt(rs.getString("ID")),rs.getString("NAME"),rs.getString("EMAIL"),rs.getString("FLIGHT_ID"),rs.getString("PHONE")));

            }

        }catch (Exception e )
        {

        }


        return list;
    }

}




package sample.my_project_uvt;

import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.event.ActionEvent;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;


import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ResourceBundle;


public class Passagers_controller implements Initializable {

    public Passagers_controller(){

    }
    @FXML
    private Button buttonMenu;
    @FXML
    private Button buttonBook;

    @FXML
    private TableColumn<passengers, String> col_email;

    @FXML
    private TableColumn<passengers, String> col_flight;

    @FXML
    private TableColumn<passengers, Integer> col_id;

    @FXML
    private TableColumn<passengers, String> col_name;

    @FXML
    private TableColumn<passengers, String> col_phone;

    @FXML
    private TableView<passengers> table_users;

    ObservableList<passengers> listM;

    int index = -1;
    Connection conn = null;
    ResultSet rs=null;
    PreparedStatement pst = null;


    @FXML
    public void userChangeBook(ActionEvent event) throws IOException {
        HelloApplication m = new HelloApplication();
        m.changeScene("Book.fxml");

    }
    public void userChangeMenu(ActionEvent event) throws IOException {
        HelloApplication m = new HelloApplication();
        m.changeScene("MENU.fxml");

    }


    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {

        col_id.setCellValueFactory(new PropertyValueFactory<passengers,Integer>("ID"));
        col_name.setCellValueFactory(new PropertyValueFactory<passengers,String>("NAME"));
        col_email.setCellValueFactory(new PropertyValueFactory<passengers,String>("EMAIL"));
        col_flight.setCellValueFactory(new PropertyValueFactory<passengers,String>("FLIGHT_ID"));
        col_phone.setCellValueFactory(new PropertyValueFactory<passengers,String>("PHONE"));

        listM=MySqlConnectPassengers.getDatauser();
        table_users.setItems(listM);

    }
}



package sample.my_project_uvt;

public class passengers {

    int ID;
    String NAME, EMAIL, FLIGHT_ID,PHONE;

    public passengers(int ID, String NAME, String EMAIL, String FLIGHT_ID, String PHONE) {
        this.ID = ID;
        this.NAME = NAME;
        this.EMAIL = EMAIL;
        this.FLIGHT_ID = FLIGHT_ID;
        this.PHONE = PHONE;
    }

    public int getID() {return ID;}

    public String getNAME() {return NAME;}

    public String getEMAIL() {return EMAIL;}

    public String getFLIGHT_ID() {return FLIGHT_ID;}

    public String getPHONE() {return PHONE;}

    public void setID(int ID) {
        this.ID = ID;
    }

    public void setNAME(String NAME) {
        this.NAME = NAME;
    }

    public void setEMAIL(String EMAIL) {
        this.EMAIL = EMAIL;
    }

    public void setFLIGHT_ID(String FLIGHT_ID) {
        this.FLIGHT_ID = FLIGHT_ID;
    }

    public void setPHONE(String PHONE) {
        this.PHONE = PHONE;
    }
}



    

【问题讨论】:

    标签: java mysql database javafx


    【解决方案1】:

    在 DriverManager.getConnection 上,您还应该为要连接的用户提供名称和密码。此用户必须具有从您的程序正在运行的主机连接的凭据。 示例:Connection con=DriverManager.getConnection( "jdbc:mysql://&lt;host&gt;:3306/&lt;schema&gt;","username","password"); 编辑: 一个很好的指南可以找到in this post

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 2022-10-31
      • 2019-11-29
      • 2017-08-02
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      相关资源
      最近更新 更多