这是关于 jdbc 的 mysql 驱动程序的另一个问题。考虑到我在谷歌上搜索时得到的搜索结果的数量,我很沮丧,我在其中找到的任何东西都对我有用。
错误:
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 是该类的正确路径。这就是我在网上和使用定位时发现的。
我尝试将环境类路径设置为CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar
/etc/environment. 如您所见,我也尝试了 -cp 标志。
我可以使用命令行 mysql-client 使用 JDBCTest 类中的凭据连接到 mysql 服务器和数据库。所以这不是数据库服务器或我的用户/密码错误。
据我所知,我的 jdbc url 是正确的。这是我在搜索时发现的更常见的问题之一......
我在我的服务器上使用 Ubuntu 12.04 64 位。
libmysql-java 已安装。照原样,openjdk-7-jre-headless。
我完全在 Tomcat 之外运行它,因此所有将驱动程序复制到 Tomcat 目录中的答案都不适用。
所以,我很难过。我认为使用 -cp 标志只会强制它工作。我的 java 安装中是否缺少某些内容?openjdk-7-jre-headless 遗漏了什么?
我该如何解决?
注意:这个类只是一个快速测试来帮助我诊断为什么一个更大的(专有)应用程序不会连接到我的数据库。较大的应用程序会引发相同的错误。我希望修复这个小班将修复更大的应用程序。