2013-04-28 136 views
0

我创建了java应用程序。它在localhost上运行。但无法连接到远程服务器。 这里是我的代码无法从java应用程序连接到远程mysql服务器

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毫秒前。驱动程序尚未收到来自服务器的任何数据包。

我该如何解决这个问题。

+1

配置为MySql服务器的[bind-address](http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind- address)是什么? – 2013-04-28 09:03:31

+0

用户和密码就是例子。我会稍后改变。 – 2013-04-28 09:09:31

+0

你能用标准的mysql客户端连接到远程数据库吗? – Nifle 2013-04-28 09:12:50

回答

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()); 
    } 

更改数据库名称和用户和密码,你去

0

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

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

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

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