2011-12-05 15 views
1

MySQLデータベースに接続しようとしており、「データベースに接続できません」という例外が発生しています。誰でも私が間違っていることを見つけることができますか?「データベースに接続できません」

public class SQL { 


     //database variables 
     private Connection connection; 

     public SQL() { 
      // DATABASE CONNECTION 
      try { 
       Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      } catch (Exception e) { 
       System.err.println("Unable to find and load driver"); 
       System.exit(1); 
      } 

      try { 
       connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/tools"); 
      } catch (SQLException e){ 
       System.out.println("Unable to connect to database"); 
       System.exit(1); 
      } 

     } 

     public void database() { 
      Vector<String> v = new Vector<String>(); 
      try { 
       Statement statement = connection.createStatement(); 
       ResultSet rs = statement 
         .executeQuery("SELECT nameofsong FROM lyrics_lyrics"); 

       while (rs.next()) { 
        v.addElement(rs.getString("nameofsong")); 
       } 
       rs.close(); 
      } catch (SQLException e) { } 
     } 


     private void displaySQLErrors(SQLException e){ 
      System.out.println("SQLException: " + e.getMessage()); 
      System.out.println("SQLState:  " + e.getSQLState()); 
      System.out.println("VendorError: " + e.getErrorCode()); 
     } 

    } 
+2

e.printStackTrace()を使用して、例外のスタックトレースを出力できますか。出力をポストします。 – Andy

+1

完全に積み重ねてください。 –

+0

ユーザー名とパスワードを指定しましたか? – Cyntech

答えて

2

ユーザー名とパスワードを設定する必要があります。一目で

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/tools", 
              "username","password"); 
+0

ああ、私のmysqlパスワードは知っていますが、ユーザー名を知る方法はありますか?忘れてしまいました.. –

+0

@JadJ - rootパスワードをリセットすることができます - http://dev.mysql.com/doc/refman/ 5.0/ja/resetting-permissions.html – adatapost

3

私はあなたが提供していないことがわかりusernamepassword

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/tools",username,password); 
                       ^ ^
0

こんにちはクラスパスジャーを確認してください。それはmysqlのjarを持っていますか?それが原因でmysqlのjarファイルがクラスパスに見つからない場合は、com.mysql.jdbc.Driverクラスが見つからない場合があります。したがって、例外がスローされます。その後、あなたはAVDや他の人たちが指定した接続対象を取る必要があります。

+0

、ジェイはクラスパスにあり、それはすべていいですね、みんな私のユーザ名とパスワードを指定する必要があります。見上げる? –

+0

ユーザ名としてルートを確認してください –

0

あなたの場合は、ユーザー名とパスワードを追加する必要があります。

Parameters: 
url - a database url of the form jdbc:subprotocol:subname ex: "jdbc:mysql://localhost:3306/tools" 
user - the database user on whose behalf the connection is being made 
password - the user's password 
0

だって

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/tools","user","password"); 

私はあなたのプライベートメソッド、 "displaySqlErrors(...)" を持って注意してください。 "displaySqlErrors(e)"のようにcatchブロックからそのメソッドを呼び出すと、問題を自分で判断することができます。

+0

私は「root」をユーザ名として使用し、自分のパスワードを渡してくれました。みんなありがとう –

関連する問題