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();
}
}
}
/usr/share/java/mysql-connector-java.jar がクラスの正しいパスであることは 90% 確実です。それは私がオンラインとlocateの両方で見つけたものです。
CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar
環境クラスパスを/etc/environment に設定しようとしました。ご覧のとおり、-cp フラグも試しました。
コマンド ライン mysql-client を使用して、JDBCTest クラスにある資格情報で mysql サーバーとデータベースに接続できます。したがって、db サーバーまたはユーザー/パスワードのエラーではありません。
私が知る限り、私の jdbc URL は正しいです。それは、検索中に見つけたより一般的な問題の1つでした...
サーバーで Ubuntu 12.04 64 ビットを使用しています。
libmysql-java がインストールされています。そのまま、openjdk-7-jre-headless です。
これは完全にTomcatの外部で実行しているため、ドライバーをTomcatのディレクトリにコピーするというすべての回答は適用されません。
だから、私は困惑しています。-cp フラグを使用すると、強制的に機能すると思います。私のJavaインストールに欠けているものはありますか? openjdk-7-jre-headless から除外されたものはありますか?
これを修正するにはどうすればよいですか?
注: このクラスは、より大きな (独自の) アプリがデータベースに接続しない理由を診断するのに役立つ簡単なテストです。より大きなアプリは同じエラーをスローします。この小さなクラスを修正することで、より大きなアプリが修正されることを願っています。