Android JDBC 连接问题
Posted
技术标签:
【中文标题】Android JDBC 连接问题【英文标题】:Android JDBC Connectivity problems 【发布时间】:2012-12-24 07:02:28 【问题描述】:我正在尝试连接到我网站的 mysql 数据库,但我不了解 php,所以我决定使用 JDBC。我遵循了一些视频教程(非 JDBC)并使用了他们的步骤。我跳过了 MAMP 步骤,因为我没有在我的 PC 上托管服务器。它在本地托管,因为它将成为一个更大的网站。
所以我在我的登录活动中输入了这段代码(你看到的第一个屏幕):
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】:两个想法:
您网站的 MySQL 服务器不太可能绑定到外部接口 - 它可能只侦听 localhost 接口。您的托管服务提供商应该能够确认/可能会为您解决这个问题。
从长远来看,尝试将移动应用程序直接连接到服务器数据库可能效果不佳 - 我建议您要么弄清楚如何编写服务器端应用程序(用于您的移动要连接的应用程序)在 PHP 中,或找到您的主机支持的另一种语言,并使用该语言进行操作。
【讨论】:
我本来打算做 PHP,但这个版本只是 BETA,我不知道如何用 PHP 编码,所以我将在下一个版本中学习。跨度> 如果我连接到主机的 SSL ***,会不会把我放在他们的本地主机上? 可能,但您需要与您的托管服务提供商核实具体情况。以上是关于Android JDBC 连接问题的主要内容,如果未能解决你的问题,请参考以下文章