无法连接到数据库?

时间:2019-08-05 12:31:38

标签: java mysql jdbc database-connection

我正在练习一个简单的注册程序。为此,我需要连接到数据库。我尝试了其他事情,但没有解决

我正在使用Xampp和MySQL Workbench。我没有设置任何密码或用户名。在MySQL Workbench上它说: 连接: 名称:演示 主持人:127.0.0.1 端口:3306 服务器:mariadb.org二进制分发 版本:10.1.37-MariaDB 连接器:C ++ 8.0.14 登录用户:root 当前用户:root @ localhost SSL:已禁用

import java.sql.*;

public class Driver {

    public static void main(String[] args) {

        try {
            // 1. Get connection to the database
        //  Connection myConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo", "student", "student");
            //Connection myConnection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo");
            String url = "jdbc:mysql://127.0.0.1:3306/mysql";
            Connection myConnection = DriverManager.getConnection(url);

            //2. Create a statement
            Statement myStatement = myConnection.createStatement();

            //3. execute sql query
            ResultSet myResultSet = myStatement.executeQuery("SELECT * FROM students");

            //4. process the result set
            while(myResultSet.next()) {
                System.out.println(myResultSet.getString("lname") + ", " + myResultSet.getString("fname"));
            }
        }
        catch (Exception e) {
            e.printStackTrace();

        }



    }

}
java.sql.SQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'mysql'
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:270)
    at jdbcdemo.Driver.main(Driver.java:14)

2 个答案:

答案 0 :(得分:2)

这个答案是推测性的,因为我实际上还没有针对MySQL进行过测试,但这是您目前使用的方法遇到的两个问题:

  • 您提到您没有创建任何用户名或密码。但是,据我所知,即使您没有创建用户名,也将使用MySQL随附的默认值(通常为root)。
  • 无法设置密码,但是在这种情况下,您仍应使用DriverManager.getConnection的三个参数变体,该变体接受JDBC URL,用户名(默认)和密码(空)。您的情况)。

将所有内容放在一起,您可以尝试:

String url = "jdbc:mysql://127.0.0.1:3306/mysql";
Connection myConnection = DriverManager.getConnection(url, "root", "");

然后,假设上述方法有效,请尝试使用您的连接。

答案 1 :(得分:0)

连接URL的格式如下:

<page size="A4"> INVOICE DATA which comes more or less than A4 size </page>