【问题标题】:Java MySQL Connection [duplicate]Java MySQL连接[重复]
【发布时间】:2012-10-20 16:11:06
【问题描述】:

可能重复:
Mysql JDBC driver ClassNotFoundException

我使用一个函数连接到 Linux 上的 MySQL 服务器:

protected void connectMYSQL() {
    if (!this.userName.isEmpty() && !this.password.isEmpty() && !this.URL.isEmpty()) {
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance(); 
            } catch (Exception ex2) {
                 System.out.println("class.forname exception : " + ex2);
                 return;
            }
            connection = DriverManager.getConnection(URL, userName, password);
        } catch(SQLException ex) {
            System.out.println("can not connect to mysql : " + ex);
        }
    }
}

带变量

userName = root
password = xxxxxxxxxx
URL = jdbc:mysql://127.0.0.1/parkDevelop?profileSQL=true

但我遇到了一个错误

class.forname exception : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

这次当我删除 Class.forName("com.mysql.jdbc.Driver").newInstance(); 行时,我收到连接失败的错误。

【问题讨论】:

  • 类路径中找不到您的 mysql 驱动程序。只需添加它。有几个similar questions on SO
  • 我已经在我的类路径中添加了文件 mysql-connector-java-5.1.22-bin.jar 但我仍然收到此错误:/ 如果我无法解决问题,我将安装再次在我的服务器上安装操作系统。
  • 你是使用ide还是命令提示符?
  • 我正在处理命令提示符。我也试过 java -cp ../src/mysql-connector-java-5.1.22-bin.jar taksiOperator 它不运行 jvm。
  • @irukera 最好尝试两个 jar 的绝对路径,而复制可能会丢失。 Refer here

标签: java mysql linux jdbc


【解决方案1】:

您需要从here 下载连接器并将其包含在您的类路径中

【讨论】:

    【解决方案2】:

    您可能缺少MySQL connector for Java。将其添加到您的类路径中,以便您的程序可以找到类 com.mysql.jdbc.Driver

    【讨论】:

    • 我已经下载了文件并将其添加到我的类路径中,但仍然是同样的问题:/
    【解决方案3】:

    您的 JDBC-MySQL 连接器驱动程序不在您的类路径中。将 mysql-connector-xxx.jar 的链接添加到您的 CLASSPATH 环境变量中。

    echo "export CLASSPATH=$CLASSPATH:/path/to/your/mysql-connector.jar" > ~/.bashrc

    我也觉得URL = jdbc:mysql://127.0.0.1/parkDevelop?profileSQL=true应该是:

    URL = jdbc:mysql://127.0.0.1:3306/parkDevelop?profileSQL=true

    【讨论】:

    • 我也这样做了,但仍然遇到同样的错误:/
    • 很想知道我们为什么要在路径中添加连接器?我可能错了,请告诉我@Aniket
    • @irukeru 只需将两个 jar 添加到它将执行的类路径 see here
    • @Thanga 因为当我们说 Class.forName("com.mysql.jdbc.Driver") 时,JVM 会搜索类路径以找到正确的类。它只搜索在 CLASSPATH 环境变量中设置的路径。如果失败,则抛出异常。如果它找到 .class(在 .jar 中),它将接受并加载该类。
    • @irukeru 你真的用 CLASSPATH 做到了吗?
    【解决方案4】:

    此错误表明您的 mysql-connector-java-5.0.8-bin.jar 文件在 WEB-INF/lib 文件夹中丢失。所以你添加这个jar文件并重新启动tomcat服务器。 要添加 jar 文件,请先复制该 jar 文件,然后在 Eclipse 的 WEB-INF/lib 文件夹中粘贴(ctrl+v)。

    【讨论】:

    • 我没有看到 OP 的问题中提到 Tomcat 的任何部分。据我了解,他正试图在一个简单的 Java 应用程序中访问 MySQL 数据库。他也没有提到日食……
    猜你喜欢
    • 2018-11-09
    • 2014-09-18
    • 2012-12-15
    • 2018-09-10
    • 2020-04-14
    • 2020-09-22
    • 2014-07-07
    • 1970-01-01
    • 2017-09-28
    相关资源
    最近更新 更多