Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试从虚拟机(Java)连接到mysql数据库_Java_Mysql_Ubuntu_Virtual - Fatal编程技术网

正在尝试从虚拟机(Java)连接到mysql数据库

正在尝试从虚拟机(Java)连接到mysql数据库,java,mysql,ubuntu,virtual,Java,Mysql,Ubuntu,Virtual,我正在尝试显示Emplbeados表中的数据。该表位于ucol数据库中,该数据库位于Ubuntu虚拟机中。我已经配置了纯主机网络,它可以双向ping。但当我运行程序时,它会捕获一个异常 static final String controlador = "com.mysql.jdbc.Driver"; static final String direccion = "jdbc:mysql://192.168.1.73:3306/ucol"; static final String usuario

我正在尝试显示Emplbeados表中的数据。该表位于ucol数据库中,该数据库位于Ubuntu虚拟机中。我已经配置了纯主机网络,它可以双向ping。但当我运行程序时,它会捕获一个异常

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.

我遗漏了什么吗?

我发现了问题,在虚拟机上停止了ufw服务

sudo service ufw stop

首先,将MySQL端口添加到连接字符串中,并检查它是否在VM上打开。标准一号是3306
direccion=“jdbc:mysql://192.168.1.73:3306/ucol“
完成。抛出相同的异常。您可以通过终端登录mysql并显示特定的表吗?是的,我使用mysql用户和密码进行访问,它在虚拟机上工作,一切正常。“user”字符串应该是Ubuntu用户还是Mysql用户?无论哪种方式,我对这两种情况都进行了更改,但仍然抛出相同的异常。
sudo service ufw stop