【问题标题】:Communications link error in Android projectAndroid项目中的通信链接错误
【发布时间】:2012-12-04 05:26:36
【问题描述】:

我看过很多关于这个问题的帖子,涉及数据库权限或防火墙设置,但我似乎遇到了不同的问题。

我收到一条错误消息“com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure. 最后一个成功发送到服务器的数据包是 0 毫秒前。驱动程序没有收到来自服务器的任何数据包。”尝试从 Android 应用程序打开到远程数据库的 jdbc 连接时。

我知道这不是权限、防火墙或数据库可用性的问题,因为我能够使用完全相同的 java 类来连接不同的应用程序并进行更改,并且此功能在之前的迭代中运行良好代码,但现在导致问题。它的调用方式相同,唯一的区别是在一个项目中它是一个 Android 应用程序,而在另一个项目中它是一个常规 Java 应用程序。如果有人对可能出现的问题有任何想法,请告诉我。我使用的类如下:

public class DatabaseHandler{

private static String address;
private String username;
private String password;
private static Connection con;

public DatabaseHandler(String url, String un, String pw){
    address = "jdbc:mysql://[remote server IP]:3306/nfcgeo";
    username = un;
    password = pw;
}

public void openDB() throws Exception{
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        con = DriverManager.getConnection(address, username, password);
}

在 Android 应用程序的 MainMenu 类中:

 public void onCreate(Bundle savedInstanceState)
{
    setupDatabaseConnection(context);
    if(!dbAvailable)
    {
        noDatabaseConnection(context);       

    }

public static void setupDatabaseConnection(Context _context)
{
    try
    {
    dbHandle = new DatabaseHandler("","root","rootpw");
    dbHandle.openDB();
    dbAvailable = true;
    }
    catch(Exception e)
    {
        dbAvailable = false;
        e.printStackTrace();
    }
}

同样,如果在 android 应用程序之外使用 DatabaseHandler 类,我只会在从主菜单调用它时遇到异常。如果有人有任何想法,请告诉我。谢谢。

【问题讨论】:

    标签: android mysql jdbc


    【解决方案1】:

    发生这种情况是因为服务器没有将权限分配给名为 u 的用户在此处作为用户名提供

    所以你需要在你的数据库上运行命令

    1. 将 *.* 上的所有内容授予由 somepassword 标识的用户名 用户名 - 您将使用它连接到数据库 密码-您将使用它连接到 dB。 所以连接字符串现在将是 jdbc:mysql://ip:3306/dbname,username,password
    2. 刷新权限(检查拼写)
    3. 如果仍然不起作用,请将 bind-address:your ip 替换为 bind-address:0.0.0.0。 此文件将在 mysql 安装目录中。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 2018-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      相关资源
      最近更新 更多