无法从java应用程序连接到远程mysql服务器

时间:2013-04-28 08:59:51

标签: java mysql jdbc

我创建了java应用程序。它适用于localhost。但无法连接到远程服务器。 这是我的代码

    public Connection getDBConnection() throws Exception {
    Connection conn = null;
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conn = DriverManager.getConnection("jdbc:mysql://192.168.0.101:8081/mydb", "user", "password");
    return conn;
}

我使用的是jdbc驱动程序。

但我收到了错误消息

Communications link failure

成功发送到服务器的最后一个数据包是0毫秒前。驱动程序未收到来自服务器的任何数据包。

我该如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

    try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
        "databaseName=dbname;user=1111;password=1111;";
    Connection con = DriverManager.getConnection(connectionUrl);
    } catch (SQLException e) {
        System.out.println("SQL Exception: "+ e.toString());
    } catch (ClassNotFoundException cE) {
        System.out.println("Class Not Found Exception: "+ cE.toString());
    }

更改您的数据库名称和用户及密码,然后转到

答案 1 :(得分:0)

我认为服务器可能未配置为接受来自您的公共IP地址的请求。例如,在cPanel中,您需要“允许”从特定IP地址访问MySQL。默认情况下,仅允许localhost。您可能需要联系服务器管理员并请求允许您访问MySQL服务器。

您绝对不是身份验证问题,否则您将收到身份验证失败响应。

您还可以尝试从任何MySQL客户端应用程序连接到您的服务器,例如MySQL Workbench,SQLYog等来测试这个问题。

同时检查连接字符串中的MySQL服务器IP地址/名称是否正确,因为我们无法在此确认。请与您的服务器管理员一起检查。