2016-06-11 11 views
0

これは何らかの形で重複している場合はまず謝罪しますが、何時でもこのサイトから数多くの異なることを試みています。記録のために、私はOS X 10.11.5を実行しています。 、私はパッケージ化していますJDBCを使用して任意のコンピュータからlocalhostデータベースにアクセス

@Override 
public void actionPerformed(ActionEvent e) { 

// The ID to search for 
int search = Integer.parseInt(textField.getText()); 
// Setting up the connection to the database. 
    String url = "jdbc:mysql://my_ip_address:3306/javaDatabase"; 
    String user = "root"; // root user 
    String password = ""; // no password 
    Connection con = null; 
    PreparedStatement searchID; // I used a prepared statement so I could include user input 
    ResultSet result = null; // results after SQL execution 

    try { 
     con = DriverManager.getConnection(url, user, password); // connect to MySQL 
     // Creating the prepared statement 
     searchID = con.prepareStatement("SELECT * FROM Names WHERE ID = ?"); 
     // Setting the parameter to the user input 
     searchID.setInt(1, search); 
     result = searchID.executeQuery(); // execute the SQL query 

     while (result.next()) { // loop until the end of the results 

      String ID = result.getString("ID"); 
      String FirstName = result.getString("FirstName"); 
      String LastName = result.getString("LastName"); 

      textArea1.setText("ID: " + ID + "\n" + 
      "First Name: " + FirstName + "\n" + 
      "Last Name: " + LastName + "\n"); 
     } 
    } catch(SQLException e1) { 
     System.out.println("Exception caught " + e1.getMessage()); 
    } finally { 
     try { 
      if (result != null) { 
       result.close(); 
      } 

      if (con != null) { 
       con.close(); 
      } 
     } catch(SQLException e2) { 
      System.out.println("SQLException caught " + e2.getMessage()); 
     } 
    } 
} 

public static void main(String[] args) { 

    JavaWithSQL newJava = new JavaWithSQL(); 

} 

を今すぐ:

は、私はそれが(それがある場合、私は、任意のヘルプをphpMyAdminのを使用しています)私のローカルホスト上に格納されて作成されたデータベースに接続するためにJDBCを使用して、この簡単なアプリケーションを作っていますこのアプリケーションは実行可能な.JARファイルとして実行され、他の誰かのコンピュータ上で実行し、データベースにアクセスしてレコードを返すことができるようにします。

私は、herehereの指示を、不運なことなく試してみました。私はMacでポート3306を開いてみましたが、ファイアウォールはオフになっていますが、問題はないようです。私はまた、問題のデータベースに対してGRANT権限を使用しようとしました:

を利用できません。

GRANT ALL PRIVILEGES ON javaDatabase.* TO 'root'@'other_computer_ip' IDENTIFIED BY ''; 

しかし、私は私の講師のコンピュータ上でそれを実行できるようにする必要があり、理論的には、他の人のコンピュータ:しかし、私は明示的にこのように、コンピュータのIPアドレスを書くとき、それ は、他のコンピュータ上作業を行います誰のIPアドレスも知る必要はありません。

どうすればいいですか?何か不足していますか?

さて、私は、コマンド

GRANT SELECT ON javaDatabase.* TO 'remoteUser'@'%' IDENTIFIED BY ''; 
FLUSH PRIVILEGES; 

を実行しているそして今、それは、同じネットワークに接続された任意のコンピュータ上で完璧に動作しますが、私はそれは私がしても動作する必要があります:EDITは

別のネットワークに接続します。

私は本当にこの1つにポインタが必要です。

答えて

0

あなたは、私はそれが動作するかどうかはわからないTO '%'@'%' IDENTIFIED BY '';

を使用しています。あなたのケースでは、rootユーザーに対処する必要があります。

GRANT ALL PRIVILEGES ON javaDatabase.* TO 'root'@'%' IDENTIFIED BY '';

+0

私もそれを試しました。私はIDENTIFIED BYに空白を入れます。なぜなら、ルートには現在パスワードがないからです。 –

+0

私はパスワードを意味しませんでした。そのユーザー名の部分は私を混乱させます... '%' @ '%'は私の右には聞こえません –

+0

2番目のクエリはrootをユーザー名として使用しています。 –

関連する問題