找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]

Posted

技术标签:

【中文标题】找不到适合\'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]【英文标题】:No suitable driver found for 'jdbc:mysql://localhost:3306/mysql [duplicate]找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复] 【发布时间】:2011-12-30 02:44:12 【问题描述】:

使用 Java,尝试连接 mysql 数据库时出现此错误:

java.sql.SQLException: No suitable driver found for 
jdbc:mysql://localhost:3306/mysql at
java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at MyTest1.main(MyTest1.java:28)

我正在使用mysql-connector-java-5.1.18-bin.jar 驱动程序。它在我的构建路径中。我已经重新启动了 MySQL。我还使用 root 和无密码从命令行登录,并且连接正常。我目前在 netstat 中没有看到端口 3306。以前我遇到了一个不同的错误(我没有更改代码)。错误是“jdbc mysql Access denied for user 'root'@'localhost password NO”

try 
    Class.forName("com.mysql.jdbc.Driver");
 
catch (ClassNotFoundException e) 
    // TODO Auto-generated catch block
    e.printStackTrace();
 


try 
    String url = "jdbc:mysql://localhost:3306/mysql";
    Connection con = DriverManager.getConnection(url, "root", "");

catch (Exception e)
    e.printStackTrace();

【问题讨论】:

你能贴出你正在使用的mysql命令行吗?这可能只是一个使用“localhost”而另一个使用 127.0.0.1 的情况。 此链接中关于不导入任何内容的几点...dev.mysql.com/doc/refman/5.1/en/… 当你运行它时它是否在你的构建路径上并不重要——它在你的运行时类路径上吗? 你确定你的classpath上有mysql-connector-java-5.1.18-bin.jar吗? 我使用的是 Eclipse,所以当我添加库时,它应该已将其添加到类路径中。 jar 在引用的库下。我更新了上面的命令。错误出现在“连接”行 【参考方案1】:

您必须为 mysql-connector.jar

设置 classpath

在eclipse中,使用构建路径

如果您正在开发任何网络应用程序,您必须将 mysql-connector 放到您的 WEB-INF 的 lib 文件夹 目录中网络应用

【讨论】:

mysql-connector 应该由系统提供,不要包含在jar 或war 中。 要消除一种可能的错误来源,您可以从命令提示符中“CLASSPATH=%CLASSPATH%;mysql-connector.jar; 构建路径很重要,为你的生活节省一些时间。【参考方案2】:

在这种特殊情况下(假设 Class#forName() 没有抛出异常;您的代码正在继续运行而不是抛出异常),这个 SQLException 意味着 @987654321 @ 已为任何已加载的驱动程序返回 false

确实,您的 JDBC URL 是错误的:

String url = "'jdbc:mysql://localhost:3306/mysql";

去掉单引号:

String url = "jdbc:mysql://localhost:3306/mysql";

另见:

Mini tutorial on MySQL + JDBC connectivity

【讨论】:

对我来说,错误没有发生,使用 url = "jdbc:mysql://localhost:3306/dbname?useSSL=false"; 对我有用。【参考方案3】:

(如果你的 url 是正确的并且仍然得到那个错误信息) 执行以下步骤在 netbeans 中设置 Classpath,

    在您的项目工作区创建一个新文件夹并添加下载的 .jar 文件(例如:-mysql-connector-java-5.1.35-bin.jar) 右键单击您的项目 > 属性 > 库 > 添加 jar/文件夹 选择您刚刚创建的文件夹中的 jar 文件。然后点击确定。

现在您将看到 .jar 文件将包含在库下。现在你不需要使用 Class.forName("com.mysql.jdbc.Driver");也。

如果上述方法不起作用,请检查 mysql-connector 版本(例如:- 5.1.35)并尝试更新或适合您的版本。

【讨论】:

【参考方案4】:

只是告诉我的解决方案:在我的情况下,库和项目没有自动添加到类路径中(我不知道为什么),甚至单击“添加到构建路径”选项。所以我继续运行 -> 运行配置 -> 类路径并通过那里添加我需要的所有内容。

【讨论】:

【参考方案5】:

描述数据库驱动程序的字符串中的印刷错误也会产生错误。

一个字符串指定为:

"jdbc:mysql//localhost:3307/dbname,"usrname","password"

可能导致“找不到合适的驱动程序”错误。此示例中缺少“mysql”后面的冒号。

正确的驱动程序字符串是:

jdbc:mysql://localhost:3307/dbname,"usrname","password"

【讨论】:

太棒了!我的症状与 OP 完全相同,您猜对了我犯的错误:在错误的位置添加端口号后 jdbc:mysql:3306//localhost 我将其与列一起删除: jdbc:mysql//localhost 非常疑惑,我的com.mysql.jdbc.Driver去哪儿了? 非常感谢!我在我的 jdbc 字符串中遗漏了一个 ':',果然遇到了这个问题。 :-)【参考方案6】:

我有同样的问题,如果开发 jsp,我会解决这个问题,将 mysql connetor 放入 WEB-INF->lib 文件夹中,然后将其放入 Eclipse 右键单击​​并转到 build-path -> configure build patha在库选项卡中添加外部 jar 文件给出 lib 文件夹所在的位置

【讨论】:

【参考方案7】:

这个错误发生在我身上,通常是由于在你的eclipse项目(或你的IDE)中没有包含mysql-connector.jar而导致的。

就我而言,这是因为操作系统出现问题。

我在 phpmyadmin 中编辑一个表,mysql 挂了,我重新启动了 Ubuntu。我清理了项目但没有成功。今天早上,当我尝试了网络服务器时,它第一次运行良好。

在第一次重新启动时,操作系统识别出了问题,在第二次重新启动后,问题得到了修复。我希望这将为“可能”遇到此问题的人节省一些时间!

【讨论】:

【参考方案8】:

使用 Netbean 时,进入项目选项卡并单击那里的下拉按钮以选择库文件夹。右键单击 d Library 文件夹并选择“添加 JAR/文件夹”。在您的系统上找到 mysql-connectore-java.*.jar 文件。 这对我有用,我希望它也对你有用。 如果遇到任何问题,请回复

【讨论】:

以上是关于找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

找不到适合 jdbc mysql 的驱动程序?

Openshift - 找不到适合 jdbc:mysql 的驱动程序

如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”

PySpark 找不到适合 jdbc 的驱动程序:mysql://dbhost

在 JMETER JDBC 连接配置中找不到适合 jdbc:mysql://localhost:3306/Testing 的驱动程序

找不到适合 jdbc:mysql/localhost:3306/world 的驱动程序