Android JDBC连接问题

时间:2013-01-10 00:00:50

标签: java android mysql jdbc phpmyadmin

我正在尝试连接到我的网站的MySQL数据库,我不了解PHP,所以我决定使用JDBC。我关注了一些视频教程(非JDBC),并使用了他们的步骤。我跳过了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.

我将不胜感激任何帮助。先谢谢你了!

1 个答案:

答案 0 :(得分:0)

两个想法:

  • 您的网站的MySQL服务器不太可能绑定到外部接口 - 它可能只在localhost接口上侦听。您的托管服务提供商应该能够确认/可能为您解决此问题。

  • 从长远来看,尝试将移动应用程序直接连接到服务器数据库可能效果不佳 - 我建议您弄清楚如何编写服务器端应用程序(适用于您的移动设备)用PHP连接的应用程序,或找到主机支持的另一种语言,并在其中进行。