Netbeans 和 mysql 通信

Posted

技术标签:

【中文标题】Netbeans 和 mysql 通信【英文标题】:Netbeans and mysql communication 【发布时间】:2015-06-29 12:18:41 【问题描述】:

我为我们公司创建了一个应用程序。起初,我尝试在 mysql-xampp 中的数据库上创建无密码,它工作正常。现在我的问题是我在我的数据库上输入了密码,而我的应用程序现在每次登录时都会向我抛出这个错误:

SQL java.sql.SQLException: 拒绝用户访问 'root'@'CITSP-MOB7'(使用密码:YES)

我在连接数据库时也遇到错误:

无法连接。无法建立连接到 jdbc:mysql//localhost:3306/mydb 使用 com.mysql.jdbc.Driver (访问 拒绝用户'root'@'CITSP-MOB7'(使用密码:YES))。

这是我的数据库连接代码:

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://192.168.1.112:3306/citsp";
static final String USER = "root";
static final String PASS = "mypassword";

try
   Class.forName("com.mysql.jdbc.Driver");
  catch(ClassNotFoundException ex)
            
  //STEP 3: Open a connection
  System.out.println("Connecting to database...");
  conn = DriverManager.getConnection(DB_URL,USER,PASS);

  //STEP 4: Execute a query
  System.out.println("Creating statement...");
  stmt = conn.createStatement();

有人可以帮我解决连接问题吗? 您的回答将不胜感激。提前致谢! :)

【问题讨论】:

您在数据库中设置了密码,并让您的应用程序知道它应该在访问之前知道密码。请发布您的 java 代码 [仅连接到 mysql 部分] 首先,您应该设置一个单独的用户而不是root。 嗨@Subrata Dey,这是我的代码:static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";静态最终字符串 DB_URL = "jdbc:mysql://localhost:3306/citsp";静态最终字符串用户=“根”; static final String PASS = "mypassword"; 对不起,我是新手。我不知道如何输入(换行符),每当我按回车时,它都会提交我的评论。 嗨@AdamB,你的意思是我必须创建一个新用户吗?真的有必要吗?请解释。谢谢 【参考方案1】:

如果这对你有用,请测试在 mysql 中创建一个新用户。

首先在mysql中新建一个用户: 以 root 身份从 mysql 命令行登录。然后一一运行以下命令。

MySQL

    创建用户 'mydbuser'@'localhost' 由 'asdf' 识别;

    将所有权限授予 . 到 'mydbuser'@'localhost' ;

    刷新特权;

将上面的 java 代码更改为以下内容: 我假设您的数据库名称是 'citsp'

JAVA

        String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        String DB_URL = "jdbc:mysql://localhost/citsp";
        String USER = "mydbuser";
        String PASS = "asdf";

        try 
            Class.forName("com.mysql.jdbc.Driver");
         catch (ClassNotFoundException ex) 
            //JOptionPane.showMessageDialog(null, "There's an error connecting with the database. Please contact your administrator.");
        
        //STEP 3: Open a connection
        System.out.println("Connecting to database...");
        java.sql.Connection conn = null;
        try 
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
         catch (SQLException ex) 
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            ex.printStackTrace();
        

        //STEP 4: Execute a query
        System.out.println("Creating statement...");
        try 
            Statement stmt = conn.createStatement();
            String query = "";
            ResultSet rs = stmt.executeQuery(query);
            while(rs.next())
                // Iterate through the result
            
         catch (SQLException ex) 
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        

【讨论】:

它仍然没有解决我的问题。但真的很感谢你的帮助。 @nhix,您是否能够按照给定的命令在 mysql 中创建新用户?您现在收到什么错误消息? 是的,我已经能够使用您给出的命令创建一个新用户。同样的错误,root 刚刚更改为 mydbuser。 :( @nhix,我已经让它在我身边工作了。您是否也授予并刷新了特权?您是否在 java 部分进行了所有必要的更改? 是的!非常感谢! :)

以上是关于Netbeans 和 mysql 通信的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]

使用 netbeans 用 libcgicc.a 编译 c++

Xdebug 和 Netbeans 没有相互通信

我在 NetBeans 中看不到或编辑 MySQL 存储过程

DatabaseException CommunicationsException:通信链路故障

选择查询,将出现在 Netbeans 和 mysql 中的组合框中