Mysql i JDBC małe pytanko.

0

Jak dotychczas pracowałem na localhoscie w kwesti Mysql + Java http://haker.nie-spamuj.eu/sql-injection.html .Postanowiłem popróbować na jednym z darmowych webhostingów a mianowicie 000webhost.com.Założyłem konto,założyłem bazę,zaimportowałem bazę którą miałem na lokalu.
"jdbc//localhost/nazwa bazy";
zamieniłem na
"jdbc//mysql6.000webhost.com/nazwa_bazy";
oczywiście zmieniłem również nazwę usera oraz hasło na takie jak dostałem w mailu zwrotnym z tego hostingu.
Ktoś mi powie czemu to nie działa w ten sposób?
Dostaje na wyjściu
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago. i tak dalej.

0

Pierwsza opcja to że serwer nie pozwala na łączenie się z bazą z innych stacji jak localhost

0

poszukaj w opcjach tego hostingu przez jaki port się łączy i ustaw go w ścieżce. może to pomoże. :-|

0

Probowałem tak "jdbc//mysql6.000webhost.com:3306/nazwa_bazy";
oraz tak "jdbc//mysql6.000webhost.com/nazwa_bazy:3306";
Próbowałem również inny hosting i też dostaje to samo.
O dziwo z obydwu hostingow korzystałem w Php i nie bylo zadnych problemow dostać się i pobrac dane z bazy kiedy skrypt znajdował się u mnie na kompie a nie na tym serwerze.

Stworzyłem nowe konto.
Jakby ktoś miał chwile wejść na http://members.000webhost.com/login.php
Login : [email protected]
Passsword: mysqltester22

Go to CPanel

i stworzyć jakieś tabele w phpmyadminie i sprobować z niej coś wyciągnąć przy pomocy javy?

$mysql_host = "mysql9.000webhost.com";
$mysql_database = "a6071165_mysql2";
$mysql_user = "a6071165_mysql2";
$mysql_password = "mysqltester22";

0

nie wiem czy Ci to pomoże bo ja łączę się z inną bazą natomiast chyba sposób łączenie różni się tylko sterownikiem. może Cię to naprowadzi:

Connection conn = null;
		String database =ip+":"+port+"/"+xtb;
		String userName =login;
			String password =haslo;
			 Class.forName("org.postgresql.Driver"); //load the driver
    db = DriverManager.getConnection("jdbc:postgresql://"+database,
                                     userName,
                                     password); //connect to the db
    dbmd = db.getMetaData(); //get MetaData to confirm connection
    
    System.out.println("Connection to "+dbmd.getDatabaseProductName()+" "+
                       dbmd.getDatabaseProductVersion()+" successful.\n");
0

Mam cos takiego :

package simpledb3;

import java.sql.*;
import java.util.Properties;

public class SimpleDb {
    private static final String DRIVER_CLASS =
            "org.gjt.mm.mysql.Driver";
    private static final String DB_URL =
            "jdbc:mysql://mysql9.000webhost.com/a6071165_mysql2";
   private static final String SQL_PRODUCTS =
            "select * from products";

    public SimpleDb() {
        Connection c = null;
        Statement s = null;
        ResultSet rs = null;
        try {
            c = getConnection();
            s = c.createStatement();
            rs = s.executeQuery(SQL_PRODUCTS);
            ResultSetMetaData rsmd = rs.getMetaData();
            System.out.println("Product List");
            for (int i = 1;
                    i <= rsmd.getColumnCount();
                    i++)
                System.out.print(rsmd.getColumnName(i)
                        + '\t');
            System.out.println();
            while (rs.next()) {
                int i = 1;
                while (i <= rsmd.getColumnCount())
                    System.out.print(rs.getObject(i++).
                            toString()  + '\t');
                System.out.println();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null)
                    rs.close();
                if (s != null)
                    s.close();
                if (c != null)
                    c.close();
            } catch (SQLException ignored) {
            }
        }
    }

    private Connection getConnection()
            throws SQLException {
        Connection c = null;
        try {
            Class.forName(DRIVER_CLASS);
            Properties p = new Properties();
            p.put("user", "a6071165_mysql2");
            p.put("password", "mysqltester22");
            c = DriverManager.getConnection(DB_URL, p);
        } catch (ClassNotFoundException x) {
            x.printStackTrace();
        }
        return c;
    }

    public static void main(String args[]) {
        new SimpleDb();

    }
}

a driver ktorego używam to mysql-connector-java-5.0.8

1 użytkowników online, w tym zalogowanych: 0, gości: 1