0

Web サイトの MySQL データベースに接続しようとしていますが、PHP の知識がないため、JDBC を使用することにしました。いくつかのビデオ チュートリアル (非 JDBC) に従い、その手順を使用しました。ただし、PC からサーバーをホストしていないため、MAMP の手順はスキップしました。より大きなウェブサイトになるため、ローカルでホストされています。

したがって、このコードをログイン アクティビティに入力しました (最初に表示される画面)。

Connection connection = null;
    Statement statement = null;

    String username = "username";
    String password = "password";

    String dbURL = "jdbc:mysql://216.26.176.52:3306/lifesizefoto";

    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        connection = DriverManager.getConnection(dbURL, username, password);
        statement = connection.createStatement();
        System.out.println("Connected.");
    } catch (ClassNotFoundException error) {
        System.out.println("Cannot connect");
    } catch (SQLException error) {
        System.out.println("Error: " + error.getMessage());
    } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        if (connection != null) { try {connection.close();} catch (SQLException ignore) {} }
        if (statement != null) { try {statement.close();} catch (SQLException ignore) {} }
    }

.getConnection() ステートメントに対してさまざまなバリエーションを試しましたが、わかりません。また、ウェブサイトのホストに連絡したところ、彼は私の IP のすべてのファイアウォールを停止し、アプリ用の特別なポートも開いてくれました。

アプリを実行すると、次のエラーが発生します。

    01-09 18:59:32.769: I/System.out(14178): Error: Communications link failure
01-09 18:59:32.769: I/System.out(14178): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

助けていただければ幸いです。よろしくお願いします!

4

1 に答える 1

0

2つの考え:

  • WebサイトのMySQLサーバーが外部インターフェイスにバインドされている可能性は低く、ローカルホストインターフェイスでのみリッスンしている可能性があります。あなたのホスティングプロバイダーはあなたのためにそれを確認する/おそらく修正することができるはずです。

  • モバイルアプリをサーバーデータベースに直接接続しようとしても、長期的にはうまく機能しない可能性があります-サーバー側アプリ(モバイルアプリが接続するための)を作成する方法を理解することをお勧めしますPHP、またはホストがサポートする別の言語を見つけて、その言語で実行します。

于 2013-01-10T03:24:28.290 に答える