1
$mysql_host = "mysql12.000webhost.com";
$mysql_database = "a1819767_ramen";
$mysql_user = "a1819767_naruto";
$mysql_password = "naruto1234";

I am trying to connect to mysql database using java. But it's not working. However I can access the database from phpMyAdmin of the webhost cpanel.

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://mysql12.000webhost.com/a1819767_ramen";

    //  Database credentials
    static final String USER = "a1819767_naruto";
    static final String PASS = "naruto1234";

    public static void main(String args[]) {
        Connection conn = null;
        Statement stmt = null;
        try {
            //STEP 2: Register JDBC driver
            Class.forName("com.mysql.jdbc.Driver");

            //STEP 3: Open a connection
            System.out.println("Connecting to database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

But I get the following error...

Connecting to database...
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:57) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    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:355)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2461)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at FoodBank.main(FoodBank.java:24)
Caused by: 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.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:259)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:305)
    ... 15 more

BUILD SUCCESSFUL (total time: 27 seconds)

Ping Screen Shot

Web host credentials

Uchiha Madara
  • 49
  • 3
  • 13
  • is there a firewall in between? – René Winkler Mar 18 '15 at 18:37
  • There is a firewall : `3306/tcp filtered mysql` . Maybe there is a different port than default or you can't access it from outside – Duffydake Mar 18 '15 at 18:54
  • It is Very unusual that hosts allow remote access to a mysql database. It is occasionally possible but you have to setup a user account that is allowed to login from a remote address. – RiggsFolly Mar 18 '15 at 19:29
  • I think this answers my question.... http://stackoverflow.com/questions/10831915/connecting-mysql-remotely-via-free-host – Uchiha Madara Mar 19 '15 at 06:16

2 Answers2

2

MySQL from 000webhost doesn't allow you to connect from external applications(remote connections). It allows only connections from the same domain where it is hosted. If you want to establish remote connections then you have to upgrade to special tier.

Please check: 000webhost remote connections

SRIDHARAN
  • 1,196
  • 1
  • 15
  • 35
0

Remote MySQL connections are disabled for security and server performance reasons.

However remote MySQL connections will be enabled if you upgrade your account to our premium hosting service at https://www.hostinger.com/special/000webhost

omkar ugale
  • 106
  • 7