Java一直说它无法找到jdbc mysql驱动程序

这是关于jdbc的mysql驱动程序的另一个问题.考虑到我用Google搜索时获得的搜索结果数量,我很沮丧,因为我发现它们对我起作用.

错误

hostname# java -cp /usr/share/java/mysql-connector.jar:/home/user JDBCTest
java.sql.sqlException: No suitable driver found for jdbc:MysqL://<db ip>:3306/dbname
 at java.sql.DriverManager.getConnection(DriverManager.java:596)
 at java.sql.DriverManager.getConnection(DriverManager.java:215)
 at JDBCTest.main(sqltest.java:14)

代码(从简短的方法拉到):

import java.sql.Connection;
import java.sql.DriverManager;

class JDBCTest {

    private static final String url = "jdbc:MysqL://dbipaddress:3306/dbname";

    private static final String user = "username";

    private static final String password = "password";

    public static void main(String args[]) {
        try {
            Connection con = DriverManager.getConnection(url, user, password);
            System.out.println("Success");

        } catch (Exception e) {
            e.printstacktrace();
        }
    }
}

我90%肯定/usr/share/java/mysql-connector-java.jar是该类的正确路径.这就是我在网上找到的,并使用了locate.

我已经尝试将环境类路径设置为/ etc / environment中的CLAsspATH = $CLAsspATH:/usr/share/java/mysql-connector-java.jar.如您所见,我也尝试过-cp标志.

我可以使用命令行MysqL-client使用JDBCTest类中的凭据连接到MysqL服务器和数据库.所以这不是db服务器或我的用户/密码的错误.

据我所知,我的jdbc网址是正确的.这是我在搜索时遇到的更常见的问题之一……

我在我的服务器上使用Ubuntu 12.04 64bit.

已安装libMysqL-java.就像是,openjdk-7-jre-headless.

我在Tomcat之外完全运行它,因此将驱动程序复制到Tomcat目录中的所有答案都不适用.

所以,我很难过.我认为使用-cp标志只会强制它工作.我的java安装中有什么东西丢失了吗?什么东西从openjdk-7-jre无头?

我该如何解决

注意:这个类只是一个快速测试,可以帮助我诊断为什么更大的(专有)应用程序无法连接到我的数据库.较大的应用程序会抛出相同的错误.我希望修复这个小类将修复更大的应用程序.

解决方法:

您可能正在使用不符合JDBC 4的MysqL JDBC驱动程序版本,因此DriverManager不会自动加载它.在这种情况下,您需要使用以下方法显式加载它:

Class.forName("com.MysqL.jdbc.Driver");

另一种选择是使用符合JDBC 4的库版本,并自动加载.

相关文章

连接数据库的方式:第一种方式:ODBC:开放数据库连接是微软...
JDBCRequest 使用VariableNamesmysql:数据库连接池对象var...
 1.JDBCDBC(JavaDataBaseConnectivity):Java数据库连接技术...
1.需要jar包的支持:java.sqljavax.sqlmysql-conneter-java....
1.简介Activiti是一个业务流程管理(BPM)框架,它是覆盖了业务...
1.JDBC体系系统一组规范:接口JDBC接口(API)包括两个层次:...