java.net.SocketException
MESSAGE: java.net.SocketException: Socket operation on nonsocket: JVM_BindSTACKTRACE:java.net.SocketException: java.net.SocketException: Socket operation on nonsocket: JVM_Bind at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2592) at com.mysql.jdbc.Connection.<init>(Connection.java:1509) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171)

解决方案 »

  1.   

    那会不会是线程的问题呢?没用过mysql只能猜测一下。呵呵
      

  2.   

    看看你连接mysql数据库的端口是否正确
      

  3.   

    看看你连接mysql数据库的端口是否正确
      

  4.   

    那你看看能不能ping通数据库服务器..
      

  5.   

    端口链接了没有释放,重启一下tomcat就可以了
      

  6.   

    只偶尔出一次错误,我是在本机上测试的,是更新及查询数据库时出错,打出来的错误就在链接的地方也就是getconnection的地方,不过,出了错,还可以继续更新数据库,
      

  7.   

    10楼正确的啊,一般情况下我遇到“JVM_Bind”错误的话,都把进程你的java.exe或者javaw.exe或者tomcat.exe关掉就可以了。
      

  8.   

    每次出错,都关掉java.exe或tomcat也不是办法啊,有没有彻底的解决方法
      public ArrayList executeQuery(String sql) {
        ArrayList altData = new ArrayList();
        if (sql == null || "".equals(sql.trim())) {
          return altData;
        }
        try {
          conn = this.getConnection();
          statement = conn.createStatement();
          result = statement.executeQuery(sql);
          ResultSetMetaData metaData = (ResultSetMetaData) result.getMetaData();
          while (result.next()) {
            String[] data = new String[metaData.getColumnCount()];
            for (int i = 0; i < data.length; i++) {
              data[i] = result.getString(i + 1);
            }
            altData.add(data);
          }    }
        catch (Exception ex) {
          System.out.println("ERORR SQL --- " + sql);
          ex.printStackTrace();
        }
        finally {
          this.close(result, statement, conn);
        }
        return altData;
      }  public static void close(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
          try {
            rs.close();
          }
          catch (java.sql.SQLException ex) {
            ex.printStackTrace();
          }
        }
        if (stmt != null) {
          try {
            stmt.close();
          }
          catch (java.sql.SQLException ex) {
            ex.printStackTrace();
          }
        }
        if (conn != null) {
          try {
            conn.close();
          }
          catch (java.sql.SQLException ex) {
            ex.printStackTrace();
          }
        }
      }
      

  9.   

    一般情况下我遇到“JVM_Bind”错误的话,都把进程你的java.exe或者javaw.exe或者tomcat.exe关掉就可以了。 
      

  10.   

    这个程序用到了jni技术,如果我把jni代码去掉,就不会出现上述错误,可是我搞不懂jni为什么??,哪位有这方面的经验,能不能谈一下,解决完就结贴,有进候会出这种错误
    java.net.SocketException
    MESSAGE: Unrecognized Windows Sockets error: -1: socket available