2 Replies Latest reply: Sep 26, 2012 12:48 PM by 964392 RSS

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications lin

    964392

      I am using Mac OS X Lion version 10.8. I have MySQL installed through XAMPP. And I have added both mysql and the jdbc driver (5.1.22) to my classpath. The following simple code is not working:

      package learning.database;

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.SQLException;
      import java.sql.Statement;

      public class Simple {

      Connection getConnection() throws SQLException{
      String url = "jdbc:mysql://localhost/";
      return DriverManager.getConnection(url, "Tete", "bien");
      }

      void createDatabase(String database, Connection conn) throws SQLException{
      Statement stmt = null;
      try {
      stmt = conn.createStatement();
      stmt.executeUpdate("drop database if exists "+database);
      stmt.executeUpdate("create database "+database);
      }finally {
      if(null != stmt)
      stmt.close();
      }
      }

      public static void main(String args[]) throws Exception{
      /***
      * School, classrooms, and sports
      */
      String school = "school";
      Classroom cr = new Classroom();
      Connection conn = cr.getConnection();
      cr.createDatabase(school, conn);
      }
      }

      When I run the code, I get the following error:

      Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

      The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
      at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:350)
      at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2408)
      at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445)
      at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230)
      at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
      at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
      at java.sql.DriverManager.getConnection(DriverManager.java:582)
      at java.sql.DriverManager.getConnection(DriverManager.java:185)
      at learning.database.Classroom.getConnection(Classroom.java:43)
      at learning.database.Simple.main(Simple.java:33)
      Caused by: java.net.ConnectException: Connection refused
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
      at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
      at java.net.Socket.connect(Socket.java:529)
      at java.net.Socket.connect(Socket.java:478)
      at java.net.Socket.<init>(Socket.java:375)
      at java.net.Socket.<init>(Socket.java:218)
      at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
      at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300)
      ... 16 more


      Does anyone know how to fix this problem?