Richieste di pacchetti e supporto tecnico

Messaggio22 giugno 2011, 23:24 - Driver JDBC e Mysql 5.5.13 #100178

Ciao,
non riesco a connettermi ad un db mysql tramite driver jdbc.
Ho scaricato il driver ufficiale di Oracle, cioè il connectorJ aggiornato all'ultima versione la 5.1.16.
Collegandomi con phpmyadmin o da riga di comanda la connessione riesce. Da codice java no.
Se serve:
Codice: Seleziona tutto
[andrea@andrea-laptop ~]$ sudo nmap -p 3306 localhost
Password:

Starting Nmap 5.51 ( http://nmap.org ) at 2011-06-22 23:18 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000059s latency).
Other addresses for localhost (not scanned): 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
PORT     STATE SERVICE
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds


Ho modificato il file /etc/hosts.allow aggiungendo la riga mysqld : ALL : ACCEPT e poi ho riavviato mysqld.

Ho commentato la riga skip-networking in /etc/mysql/my.cnf. Ho aggiunto allo stesso file anche la riga bind-address=127.0.0.1 e poi bind-access=0.0.0.0.

Finora nessun risultato positivo, per cui ho rimesso le cose come stavano...
Il codice java che uso è questo:
Codice: Seleziona tutto
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBManager {

    public static String DB_URL="127.0.0.1";    //Ho provato anche con localhost e andrea-laptop
    public static String DB_PORT="3306";
    public static String DB_NAME="DB";
    public static String DB_USER="DB_user";
    public static String DB_PASSWORD="pwd";
    public static Connection c;
    public static boolean connected=false;

    // Suppress default constructor for non-instantiability
    private DBManager(){
        throw new AssertionError();
    }

    public static boolean connect(){
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String driver="jdbc:mysql://"+DB_URL+":"+DB_PORT+"/"+DB_NAME+"?user="+DB_USER+"&password="+DB_PASSWORD;
            c= DriverManager.getConnection(driver);
            connected=true;
            return connected;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return connected;
        } catch (SQLException e) {
            e.printStackTrace();
            return connected;
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }
    }

    public static void disconnect(){
        try {
            c.close();
            connected=false;
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args){
        if(connect()) disconnect();
        else System.out.print("Errore");
    }

}


Quando lancio mi da la seguente eccezione:

Codice: Seleziona tutto
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:1116)
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:688)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1094)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2337)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
    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:381)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:207)
    at DBManager.connect(DBManager.java:26)
    at DBManager.main(DBManager.java:56)
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2540)
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:612)
    ... 17 more


Ho cercato molto con google ma non sono riuscito a risolvere nulla.

Che cosa bisogna fare per far funzionare questo benedetto jdbc su arch??

PS: non uso firewall su questa macchina, quindi la porta 3306 è aperta (come dimostrato da nmap)
rama1987
Novello Arciere
 
Messaggi: 91
Iscritto il: 23 agosto 2009, 14:46
Top

Messaggio23 giugno 2011, 10:42 - Driver JDBC e Mysql 5.5.13 #100191

Ruolo: maintainer di KDE SC
Google+ | Gittip | GitHub
Avatar utente
ndr
Amministratore
 
Messaggi: 2933
Iscritto il: 6 ottobre 2007, 0:41
Località: Lecce, Italy
Top

Messaggio23 giugno 2011, 17:33 - Driver JDBC e Mysql 5.5.13 #100213

Beh si, come ho scritto ho già modificato i file come il wiki suggerisce!
rama1987
Novello Arciere
 
Messaggi: 91
Iscritto il: 23 agosto 2009, 14:46
Top

Messaggio13 luglio 2011, 18:04 - Driver JDBC e Mysql 5.5.13 #101249

Dopo 2 settimane non ho ancora risolto. Penso che il problema riguarda Arch o Linux in generale perchè su Windows con gli stessi pacchetti e le stesse versioni funziona tutto bene...
Mah, misteri del pinguino!
rama1987
Novello Arciere
 
Messaggi: 91
Iscritto il: 23 agosto 2009, 14:46
Top

Messaggio13 luglio 2011, 19:54 - Driver JDBC e Mysql 5.5.13 #101255

Ho fatto una prova e a me il problema era il parametro skip-networking in /etc/mysql/my.cnf, commentato e funziona.

In hosts.allow ti basta avere mysqld: 127.0.0.1, invece se usi iptables devi avere la regola -A INPUT -i lo -j ACCEPT
Ruolo: maintainer di KDE SC
Google+ | Gittip | GitHub
Avatar utente
ndr
Amministratore
 
Messaggi: 2933
Iscritto il: 6 ottobre 2007, 0:41
Località: Lecce, Italy
Top

Messaggio14 luglio 2011, 11:35 - Driver JDBC e Mysql 5.5.13 #101273

Grazie non appena ho 2 minuti ritorno su arch e verifico
rama1987
Novello Arciere
 
Messaggi: 91
Iscritto il: 23 agosto 2009, 14:46
Top


Torna a AUR

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Moderatori: 4javier, aleph, veleno77, adriano, Hilinus

cron