0
我試圖顯示數據表格empleados表。該表位於Ubuntu虛擬機中的ucol數據庫內。我已經配置了主機專用網絡,它可以同時使用兩種方式。但是,當我運行它,它捕捉到一個例外試圖從虛擬機連接到mysql數據庫(Java)
static final String controlador = "com.mysql.jdbc.Driver";
static final String direccion = "jdbc:mysql://192.168.1.73:3306/ucol";
static final String usuario = "user";
static final String clave = "pass";
public static void main(String[] args) {
Connection conexion = null;
Statement consulta = null;
String sql;
int id;
String nombre;
String apellidos;
double salarios;
try {
System.out.println("Connecting...");
Class.forName(controlador);
conexion = DriverManager.getConnection(direccion, usuario, clave);
consulta = conexion.createStatement();
System.out.println("Connection done.");
sql = "SELECT id, nombre, apellidos, salarios FROM empleados;";
ResultSet resultado = consulta.executeQuery(sql);
while(resultado.next()) {
id = resultado.getInt("id");
nombre = resultado.getString("nombre");
apellidos = resultado.getString("apellidos");
salarios = resultado.getInt("salarios");
System.out.println("\nID: " + id
+ "\tNombre: " + nombre
+ "\tApellido: " + apellidos
+ "\tSalarios: " + salarios);
}
resultado.close();
consulta.close();
conexion.close();
}
catch(Exception e) {
System.err.println("Error at showing: " + e.toString());
}
finally {
try {
if(consulta != null)
consulta.close();
if(conexion != null)
conexion.close();
}
catch(Exception e) {
System.out.println("Error at closing: " + e.toString());
}
}
}
這裏的輸出:
Connecting
Error at showing: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.ConnectException
MESSAGE: Connection timed out: connect
STACKTRACE:
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:241)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at Consulta.main(Consulta.java:37)
** END NESTED EXCEPTION **
Last packet sent to the server was 2 ms ago.
下面是它是如何顯示在虛擬機上運行ifconfig:
eth0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Direc. inet: 192.168.1.73 Difus.192.168.1.55 Másc.: 255.255.255.0
~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~
我失去的東西?
首先,將MySQL端口添加到連接字符串,並檢查它是否在虛擬機上打開。標準之一是3306. 'direccion =「jdbc:mysql://192.168.1.73:3306/ucol」' – mwilczynski 2014-11-14 21:06:44
完成。拋出同樣的異常。 – nihCC 2014-11-14 23:14:33
你可以通過終端登錄到mysql並顯示該特定的表? – mattias 2014-11-14 23:28:11