これは何らかの形で重複している場合はまず謝罪しますが、何時でもこのサイトから数多くの異なることを試みています。記録のために、私は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ファイルとして実行され、他の誰かのコンピュータ上で実行し、データベースにアクセスしてレコードを返すことができるようにします。
私は、hereとhereの指示を、不運なことなく試してみました。私は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つにポインタが必要です。
私もそれを試しました。私はIDENTIFIED BYに空白を入れます。なぜなら、ルートには現在パスワードがないからです。 –
私はパスワードを意味しませんでした。そのユーザー名の部分は私を混乱させます... '%' @ '%'は私の右には聞こえません –
2番目のクエリはrootをユーザー名として使用しています。 –