1. ホーム
  2. java

[解決済み] jdbc:mysql://localhost:3306/mysql [duplicate] に適したドライバは見つかりませんでした。

2022-03-03 11:54:26

質問

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();
}

解決方法は?

この特殊なケースにおいて(仮に Class#forName() が例外を投げなかったので、あなたのコードはすなわち 投げる 例外が発生した場合)、この SQLException というのは Driver#acceptsURL() が返されました。 false がロードされたドライバのどれかに該当します。

そして確かに、JDBCのURLは間違っています。

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

シングルクオートを削除します。

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

こちらもご覧ください。