【问题标题】:JDBC connection refused, default username password?JDBC连接被拒绝,默认用户名密码?
【发布时间】:2014-12-12 05:28:14
【问题描述】:

我以前没有使用过 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有不同的用户名密码怎么办?

【问题讨论】:

  • MySQL 的默认用户名是“root”,密码是“”(无)
  • 您可以在访问 localhost/phpmyadmin 后访问用户详细信息。打开用户选项卡以查看具有相应密码和权限的用户列表
  • 已经试过了...不行!!
  • 至少浏览您正在使用的 JDBC 连接器的文档。例如这是一个:dev.mysql.com/doc/connector-j/en/…

标签: java mysql jdbc


【解决方案1】:

@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

}

【讨论】:

  • 你如何在你的系统上登录mysql?当我使用带有凭据的 mysql 工作台登录系统时。或尝试打印您的连接对象,例如: System.out.println(conn);在这里你会得到什么输出。
  • 成功了!!!!但是我想知道如果我将我的程序的可执行文件提供给其他人并且他没有安装 mysql 或具有不同的凭据或 xampp 未启动怎么办??????解决办法是什么???
  • 好吧,为此您必须在建立数据库连接之前创建一个用户界面来接受数据库信息。当用户填写表单时,将该信息存储到变量中并相应地使用。
【解决方案2】:

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

USER = "root"; PASSWORD= "";

每个人的默认凭据是“root”和“”,您可以从 phpMyAdmin 导出您的数据库..您有一个名为“导出”的按钮,您可以将该文件传递给您的朋友

【讨论】:

  • 我想从我的程序中创建数据库
【解决方案3】:

两件事:

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

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

您没有在此字符串中提及要连接的数据库的名称和端口号,我猜这将是您的情况的真正问题。

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

MySQL 的默认端口号是3306

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

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

【讨论】:

  • 我只想从我的程序中制作数据库
  • 如果没有指定,驱动使用默认端口号。
【解决方案4】:

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

【讨论】:

    【解决方案5】:
    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/

    【讨论】:

    • 如果您不指定端口,MySQL 驱动程序默认为 3306。没有数据库,它实际上可以连接(您无能为力)。
    • 你的DB_URL错了,应该是dbc:mysql://localhost:3306/yourdb
    猜你喜欢
    • 2014-08-23
    • 2017-11-14
    • 1970-01-01
    • 2022-01-23
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2015-02-18
    相关资源
    最近更新 更多