【问题标题】:Cannot connect Java to MySQL database even after having jar file即使有 jar 文件也无法将 Java 连接到 MySQL 数据库
【发布时间】:2020-07-08 22:05:21
【问题描述】:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbManager {
    public static Connection conn = null; // mysql
    public static void setMysqlDbConnection() throws SQLException, ClassNotFoundException {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("jdbc:mysql://localhost:3306/testdatabase");
            System.out.println("test1");

            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase", "root", "Password");
            System.out.println("test2");
            if (!conn.isClosed())
                System.out.println("Successfully connected to MySQL server");

            } catch (Exception e) {
            System.err.println("Cannot connect to database server");
        }
     }
}

输出是:

jdbc:mysql://localhost:3306/testdatabase
test1
Cannot connect to database server

连接未按预期工作。我已确认已安装 jar 并使用终端上的用户名和密码进行连接。有谁知道我做错了什么?

【问题讨论】:

  • 在异常块中添加e.printStackTrace()。然后在您的问题中添加堆栈跟踪错误
  • setMysqlDbConnection 应该是 getMysqlDbConnection 或带有值的设置器并打印上面评论中提到的堆栈跟踪。
  • @Avarma 您能否提及 mysql 连接器 jar 的名称和版本。由于您没有提到程序通过打印堆栈跟踪导致的错误,因此很难调试。我可以通过您的代码连接到我的数据库。
  • 感谢@GolamMazidsajib 让我记住了堆栈跟踪。我完全忘记使用它了。添加时区后问题得到解决。新代码是 "conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase?serverTimezone=UTC", "root", "My Password");"感谢 HarryCoder 和 Vishnu Prabhakar 的评论

标签: java mysql selenium dbconnection


【解决方案1】:

在代码中明确提到了serverTimezone 以解决问题。

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase?serverTimezone=UTC", "root", "MyPassword");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2017-12-20
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多