web-dev-qa-db-ja.com

java.sql.SQLException:ローカルホストテストに適したドライバーが見つかりません

Mysqlに接続しようとすると、常に次のエラーが発生します。

Java.sql.SQLException:ローカルホストテストに適したドライバーが見つかりません

アプリのmysql-connector.jar/WEB-INF/libを既に含めました。それを機能させるには、他に何を構成する必要がありますか? web.xmlに何かを追加する必要がありますか?私はappengineを使用していません。

サーバー内の私のコードは次のとおりです。

package com.mysql.server;

import Java.sql.Connection; 
import Java.sql.DriverManager;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.mysql.client.ConnDb;

public class ConnDbImpl extends RemoteServiceServlet implements ConnDb {
   public Connection con;
   @Override
    public String tryConn() {
     try{
       String Host = "localhost";
       String db = "test";
       String driver = "com.mysql.jdbc.Driver";
       String user = "root";
       String pass = "pwd";

       Class.forName(driver).newInstance();
       con = DriverManager.getConnection(Host+db, user, pass);
       return "Connected to Database";
     } catch(Exception ex) {
         return ex.toString();
     }    
   } 
}
12
user1035079

Driver#acceptsURL() メソッドに従って、ロードされたJDBCドライバーのいずれにもJDBC URLが受け入れられない場合、この例外が発生します。実際には、JDBCドライバー固有のURIプレフィックスを忘れました。 MySQL JDBCドライバーの場合、これはjdbc:mysql://です。完全な接続URLは次のようになります。

con = DriverManager.getConnection("jdbc:mysql://localhost/test", user, pass);

参照:

23
BalusC

このエラーメッセージの別の原因を見つけました。私の場合、ユーザーはデータベースに対する特権を持っていませんでした。選択したテーブルに移動します。親愛なるドライバー開発者、なぜあなたはそのような誤解を招くエラーメッセージを使うのですか?多くの人がこれに本当に問題を抱えています。

6
Richard

私にとっては、プロジェクトライブラリにMySQLJDBCドライバーを含めるのを忘れていました。 DOH!

0
S M Slack

これはそのエラーを与えていました:

_Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/lib_db","root","root");
_

しかし、私がそれを次のように変更したとき:

Connection connection =DriverManager.getConnection("jdbc:mysql://localhost/db_name?"+"user=root&password=root");

エラーがなくなった

0
SkyTreasure