这里还有一个关于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 是该类的正确路径。这就是我在网上和使用locate 找到的。
我尝试将环境类路径设置为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 中遗漏了什么?
我该如何解决?
注意:此类只是一个快速测试,可帮助我诊断为什么较大的(专有)应用程序无法连接到我的数据库。较大的应用程序会引发相同的错误。我希望修复这个小类能够修复更大的应用程序。