拒绝JDBC连接,默认用户名密码?

时间:2014-12-12 05:28:14

标签: java mysql jdbc

之前我没有使用过JDBC。我希望我的程序在每次用户启动程序时都存储来自用户的信息。可以看到以前的活动,所以我必须使用数据库,对吗?

所以我想使用JDBC但是我遇到了一些问题。

import java.sql.* ; 
public class Database {
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost/";
    //  Database credentials
    static final String USER = "username";
    static final String PASS = "password";

    public Database(){
        Connection con = null;
        Statement stmt = null;
        try{
            Class.forName(JDBC_DRIVER);
        }catch(Exception e){
            e.printStackTrace();
            System.exit(1);
        }
        try{
            con = DriverManager.getConnection(DB_URL, USER, PASS);
        }catch(Exception e){
            e.printStackTrace();
            System.exit(1);
        }
    }
}
  

错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通讯链接失败
  引起:java.net.ConnectException:拒绝连接

  1. 这个用户名和密码在哪里使用?在我的笔记本电脑上安装的mysql还是java有自己的sql?
  2. 默认用户名和密码?
  3. 如果是我的笔记本电脑上安装了mysql,那么如果我将我的程序交给我的朋友运行并且他的mysql有不同的用户名密码怎么办?

5 个答案:

答案 0 :(得分:0)

两件事:

  1. 默认的MySQL用户是root,密码将是您在安装和配置时设置的密码。大多数开发人员也使用root

  2. static final String DB_URL = "jdbc:mysql://localhost/";

  3. 您还没有提到要连接的数据库的名称以及此字符串中的端口号,这将是您猜测的真正问题。

    static final String DB_URL = "jdbc:mysql://localhost:3306/YOUR_DATABASE_NAME";

    MySQL的默认端口号为3306

    要从程序创建数据库,您需要运行以下命令:

    Statement stmt = con.createStatement();
    stmt.executeUpdate("create database DB_NAME");
    

答案 1 :(得分:0)

static final String DB_URL = "jdbc:mysql://localhost/DB_Name";

USER = "root"; PASSWORD= "";

默认凭据是" root"和""对于每个人,您可以从phpMyAdmin导出您的数据库。您有一个名为" Export"的按钮。并且您可以将该文件传递给您的朋友

答案 2 :(得分:0)

static final String DB_URL = "jdbc:mysql://localhost/";

DB_URL中的数据库名称和端口在哪里? 请更改如下,让我们再次告知状态?

static final String DB_URL = "jdbc:mysql://localhost/3306/yourdb";

这是使用JDBC连接MySQL的最佳示例。 http://www.mkyong.com/jdbc/how-to-connect-to-mysql-with-jdbc-driver-java/

答案 3 :(得分:0)

@tichu你的代码只会提到你的mysql的端口号并检查你的凭据是否正确。我已经运行您的程序,我的凭据和端口号代码在数据库创建时成功运行。只需找到以下代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;


/**
 *
 * @author manoj.sharma
 */
public class Test{

    /**
     * @param args the command line arguments
     */

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost:3306/";

   //  Database credentials
   static final String USER = "root";
   static final String PASS = "";

   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName("com.mysql.jdbc.Driver");

      //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 database...");
      stmt = conn.createStatement();

      String sql = "CREATE DATABASE STUDENTS";
      stmt.executeUpdate(sql);
      System.out.println("Database created successfully...");
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      }// nothing we can do
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main

}

答案 4 :(得分:0)

您正在获得此类异常,因为您的sql服务未运行且您正在尝试连接到sql。用户名/密码应该不是问题。