2011-07-27 19 views
1

こんにちは、私は一見よくある問題を発見しました。このような適切なドライバが見つかりませんでした。 私は同じ質問でほとんどのスレッドに従ってきましたが、自分の解決策を複製することができなかったので、私自身の特定の質問を投稿しています。mysql(リモートデバッグ)用に適切なドライバが見つかりません

(主にこのスレッド:I can't load the JDBC driver for MySQL)は

マイコード:今すぐ

public DBManager(){ 
    try { 
     //Class.forName("com.mysql.jdbc.Driver"); 
     DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 

     con=DriverManager.getConnection("jdbc:mysql:3306//localhost/test","root","root"); 
     //con=DriverManager.getConnection(c); 
     if(!con.isClosed()) { 
      con.close(); 
     } 
    } 
    catch (SQLException e) { 
     e.printStackTrace(); 
    } 

は、私は新しいドライバに必要ないけないことを読んでどちらかにClass.forName()またはなregisterDriver(); 私は両方を試みましたが、私はまだそれを働かせることができません。

事は同じコネクタを使用して、リモートのLinux上で日食インディゴおよびコネクタ/ J 5.1.17

およびデプロイ(およびデバッグ)で、Windowsマシン上で開発しています。輸送= dt_socketという、アドレス= 8998、サーバー= Y -classpath /home/dev/mysql-connector-java-5.1.17-bin:

のjava -Xdebug -Xrunjdwpと私のデバッグセッションを開始しています。 jar -jar devserver.jar

この例外が発生します。どんな助け?

私は重いC#開発環境から来ています。クラスパスなどに干渉しなければならない場合は、それほど慣れていないとしてステップバイステップしてください。

答えて

5

のSQLException:いいえ、適切なドライバ

DriverManager#getConnection()は、特定の接続URLに最適なドライバを見つけることができない時はいつでもあなたは、この例外が発生します。これは、Driver#acceptsURL()がロードされたドライバのいずれかに対してfalseを返したときに発生します。

そして実際、あなたの接続URLが間違っている:

jdbc:mysql:3306//localhost/test

それがされている必要があります。

jdbc:mysql://localhost:3306/test

MySQL JDBC manualを参照してください。

のMySQLコネクタのJDBC URL形式/ Jは、角括弧内の項目で、以下の通りである([、])は、オプションである:ホスト名が指定されていない

jdbc:mysql://[host][,failoverhost...][:port]/[database] » 
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]... 

場合、デフォルト127.0.0.1。ポートが指定されていない場合は、デフォルトでMySQLサーバーのデフォルトポート番号3306に設定されます。

jdbc:mysql://[host:port],[host:port].../[database] » 
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]... 

データベースが指定されていない場合、デフォルトデータベースなしで接続が行われます。

+1

これは、同じコードをあまりにも多く見たときに起こることです。あなたは明らかに間違っています。私はそのことを信じていない – sergio