Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[OT] MySQL: perchè la connessione JDBC viene rifiutata
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Mon Feb 28, 2005 8:35 pm    Post subject: [OT] MySQL: perchè la connessione JDBC viene rifiutata Reply with quote

Salve! :)
Sto facendo un software gestionale per l'università e ho scelto come database di appoggio MySQL per una miriade di motivi che potete immaginarvi.
Installato il server senza problemi, da console accedo senza intoppi, invece attraverso JDBC viene lanciata un'eccezione :(
La ragione di questa eccezione è che il server rifiuta la connessione :(
C'è un modo per rendere il server che ho già installato utilizzabile da JDBC? :?:

Grazie! :!:
_________________
bye,
Fuzzo


Last edited by Fuzzo on Tue Mar 01, 2005 8:57 am; edited 2 times in total
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Mon Feb 28, 2005 9:11 pm    Post subject: Reply with quote

Questa mi pare molto una domanda da www.programmazione.it ;)

Metti il tag [OT] al titolo.

Che genere di eccezione di da?
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Tue Mar 01, 2005 9:27 am    Post subject: Reply with quote

Il database mysql per default accetta solo connessioni in locale.

controlla che l'utente con il quale vuoi accedere, abbia il campo host della tabella user
impostata con l'indirizzo della macchina remota da cui provi ad accedere.
Se vuoi che acceda da qualsiasi macchina, imposta il % al suo posto.

Inoltre controlla user e password e che il driver sia caricato prima di effettuare la connessione tramite stringa.
Back to top
View user's profile Send private message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Tue Mar 01, 2005 11:32 am    Post subject: Reply with quote

AlterX, grazie per avere risposto! :)
Allora, il driver è presente e viene rilevato in maniera corretta.
Quello che voglio fare io è accedere al DB locale da localhost appunto, usando JDBC!
Il server e l'applet Java che servono allo scopo sono entrambe in locale 127.0.0.1.

Il problema è che con:
Code:
mysql -u root -p miapass

va tutto a meraviglia, attraverso l'applet invece la connessione viene rifiutata :(
_________________
bye,
Fuzzo
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Tue Mar 01, 2005 2:04 pm    Post subject: Reply with quote

Io mi ricordo che al posto di usare JDBC ho usato un driver fornito da MySQL mi pare i chiamasse connector. Prova ad usare quello.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Tue Mar 01, 2005 2:24 pm    Post subject: Reply with quote

Posta er codice!!
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Tue Mar 01, 2005 2:27 pm    Post subject: Reply with quote

AlterX wrote:
Posta er codice!!


Er codice come dici tu è disponibile su internet nel senso che basta scaricarsi la documentazione e lo trovi bello che spiegato ;)

Purtroppo non ho più quel codice sottomano se no lo avrei postato con piacere.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Tue Mar 01, 2005 2:35 pm    Post subject: Reply with quote

noo voglio er codice che usa lui!!
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Tue Mar 01, 2005 2:37 pm    Post subject: Reply with quote

AlterX wrote:
noo voglio er codice che usa lui!!


Allora la prossima volta specifica a chi è rivolta la domanda. :?
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Tue Mar 01, 2005 2:40 pm    Post subject: Reply with quote

gutter wrote:
AlterX wrote:
noo voglio er codice che usa lui!!


Allora la prossima volta specifica a chi è rivolta la domanda. :?


ehehehe scusa...
non era rivolto a te :wink:
Back to top
View user's profile Send private message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Tue Mar 01, 2005 6:13 pm    Post subject: Reply with quote

gutter wrote:
Io mi ricordo che al posto di usare JDBC ho usato un driver fornito da MySQL mi pare i chiamasse connector. Prova ad usare quello.

Io uso il connector, che non è altro che l'interfaccia JDBC a MySQL :D

Il codice c'entra poco, in quanto lo stesso codice con un server MySQL sotto Window$ lavora alla grande :evil:
Credo dipenda dai permessi, anche se non so dove mettere le mani :(
Devo per caso addare un utente connector alla lista di utenti MySQL?

Mi dispiace per l'OT, ma solo voi sapete rispondere :wink:
_________________
bye,
Fuzzo
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Tue Mar 01, 2005 6:16 pm    Post subject: Reply with quote

Fuzzo wrote:
Io uso il connector, che non è altro che l'interfaccia JDBC a MySQL :D


Ma sei sicuro che sia un'interfaccia JDBC. Che mi ricordi (e posso ovviamente sbagliare) c'erano tre tipi di driver e mi pare che il connector ricadesse nella prima tipologia ovvero "diver nativo scritto in java".
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Tue Mar 01, 2005 7:31 pm    Post subject: Reply with quote

gutter wrote:
Fuzzo wrote:
Io uso il connector, che non è altro che l'interfaccia JDBC a MySQL :D


Ma sei sicuro che sia un'interfaccia JDBC. Che mi ricordi (e posso ovviamente sbagliare) c'erano tre tipi di driver e mi pare che il connector ricadesse nella prima tipologia ovvero "diver nativo scritto in java".

Code:
    private boolean apriConnessione(String host, String db, String nu,
                                    String pwd)
    {
        if (connesso)
            return true;
        String url = new String();
        try
        {
            url = "jdbc:mysql://" + host + "/" + db;
            connessione = DriverManager.getConnection(url, nu, pwd);
            System.out.println("Connessione stabilita con: " + url);
            connesso = true;
            return true;
        }
        catch (SQLException e)
        {
            System.out.println("Errore: Impossibile stabilire una connessione"
                               + "a: " + url);
            return false;
        }
    }

La stringa url dovrebbe spiegarsi da sola :wink: ...e con questo ho spiegato anche che eccezione lancia :evil:
Altre notizie per quanto riguarda l'accesso?
_________________
bye,
Fuzzo
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Tue Mar 01, 2005 10:21 pm    Post subject: Reply with quote

Prova così:

Code:

conn = DriverManager.getConnection("jdbc:mysql://" + host + ":3306/" + database + "?user=USER");

_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Wed Mar 02, 2005 9:58 am    Post subject: Reply with quote

Fuzzo wrote:

Code:

...
        try
        {
            url = "jdbc:mysql://" + host + "/" + db;
            connessione = DriverManager.getConnection(url, nu, pwd);
            System.out.println("Connessione stabilita con: " + url);
            connesso = true;
            return true;
        }
    ...



Scusa, ma in questo codice manca la registrazione del driver JDBC di mysql.
Hai voglia di usarlo...!!!

Class.forName("com.mysql.jdbc.Driver").newInstance(); da usare prima di Driver.getConnection(...).
newInstance() non è obbligatorio, ma per compatibilità con altre virtual machine, è necessaria.
In windows evidentemente, la registrazione è avvenuta in automatico!

Edit gutter: Cerchiamo di quotare meglio.
Back to top
View user's profile Send private message
drakkan
Apprentice
Apprentice


Joined: 21 Jun 2004
Posts: 232

PostPosted: Wed Mar 02, 2005 11:00 am    Post subject: Reply with quote

forse dico una banalità ma hai provato a settare le grant dal prompt di mysql:

Code:

grant all privileges on nomedb.* to nomeutente@host identified by 'tuapassword';
flush privileges;
Back to top
View user's profile Send private message
funkoolow
Guru
Guru


Joined: 21 Sep 2004
Posts: 545
Location: er paese delle anguille

PostPosted: Wed Mar 02, 2005 11:20 am    Post subject: Reply with quote

ho un problema molto simile quindi mi permetto di intervenire sperando di non portare la discussione trppo OT.

Sul mio sistema gentoo, ho installato mysql e tutto funziona alla perfezione, tranne l'uso del db dell'esterno.

Per spiegarmi meglio: ho un sito su Aruba (noto provider lowcost) che normalmente si appoggia al db mysql localizzato su un IP (evidentemente appartenente alla loro rete) del tipo 62.xx.xx.xxx. Per provare a vedere se il mio db poteva essere usato anche dall'esterno, ho copiato il db che avevo su Aruba e l'ho passato tale e quale sul db del mio sistema gentoo, quindi dal file di configurazione del sito in questione, ho specificato di usare il db localizzato al mio IP invece che quello dell'IP di aruba, settando ovviamente relativi nome db, user e pass.

La cosa non funziona cmq, nonostante abbia provveduto a:

1) reindirizzare il traffico sulla 3306 verso l'ip del server gentoo (uso un modem-router). la cosa sembra non essere il problema dato che l'ip sulla porta 3306 è visibile via telnet.
2) settare l'host per l'utente che usa il suddetto db su %. anche questo non sembra essere il problema dato che, se mi connetto per vie esterne (via 56k con portatile, quindi esternamente alla rete dsl su cui è il server) al db tramite interfaccia phpmyadmin, il db è accessibile e navigabile.
3) settare la variabile bind-address nel file my.cnf su 0.0.0.0. questa sembra essere la stringa che setta il range di ascolto del db mysql, infatti se metto il valore di default 127.0.0.1, dall'esterno l'ip sulla porta 3306 non è più visibile via telnet come dal punto 1)

spero di non portare troppo OT la discussione e aspetto una possibile risposta, grazie :)
_________________
SabaziaLUG: il LUG a nord di Roma
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Wed Mar 02, 2005 2:13 pm    Post subject: Reply with quote

funkoolow wrote:
spero di non portare troppo OT la discussione e aspetto una possibile risposta, grazie :)


Probabilmente aruba non ti fa contattare una macchina esterna. Se hai dubbi in proposito ti conviene chiedere sul forum di aruba.
_________________
Ciao da me!
Back to top
View user's profile Send private message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Wed Mar 02, 2005 7:23 pm    Post subject: Reply with quote

Quote:
AlterX ha scritto:
Scusa, ma in questo codice manca la registrazione del driver JDBC di mysql.
Hai voglia di usarlo...!!!

Class.forName("com.mysql.jdbc.Driver").newInstance(); da usare prima di Driver.getConnection(...).
newInstance() non è obbligatorio, ma per compatibilità con altre virtual machine, è necessaria.
In windows evidentemente, la registrazione è avvenuta in automatico!

Sarà la mia prossima prova :wink:
Quote:
funkoolow ha scritto:
3) settare la variabile bind-address nel file my.cnf su 0.0.0.0. questa sembra essere la stringa che setta il range di ascolto del db mysql, infatti se metto il valore di default 127.0.0.1, dall'esterno l'ip sulla porta 3306 non è più visibile via telnet come dal punto 1)

Il file my.cnf era nella mia lista delle possibili cause, e mi sa che c'entra qualcosa pure lui... farò sapere :!:
Quote:
drakkan ha scritto:
forse dico una banalità ma hai provato a settare le grant dal prompt di mysql:
Code:

grant all privileges on nomedb.* to nomeutente@host identified by 'tuapassword';
flush privileges;


No, non ho provato ma credo sia inutile perchè usando lo stesso username e la stessa password da prompt mysql, l'accesso viene consentito.
Quote:
gutter ha scritto:
Prova così:
Code:
conn = DriverManager.getConnection("jdbc:mysql://" + host + ":3306/" + database + "?user=USER");

Ho già provato: nulla :?
_________________
bye,
Fuzzo
Back to top
View user's profile Send private message
drakkan
Apprentice
Apprentice


Joined: 21 Jun 2004
Posts: 232

PostPosted: Wed Mar 02, 2005 7:27 pm    Post subject: Reply with quote

Quote:

No, non ho provato ma credo sia inutile perchè usando lo stesso username e la stessa password da prompt mysql, l'accesso viene consentito


ho avuto un problema simile tempo fa quando accedi da prompt prova ad aggiungere -h iphost se va allora non è necessaria la grant altrimenti è quello
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Thu Mar 03, 2005 9:38 am    Post subject: Reply with quote

In ogni caso la registrazione del driver mettila perchè è necessaria! :wink:

Se puoi cerca di descrivere il problema in modo diverso, da un altro punto di vista.
Breve e conciso :lol:
Back to top
View user's profile Send private message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Fri Mar 04, 2005 9:32 am    Post subject: Reply with quote

Breve e conciso:
- Il server Linux MySQL non mi permette l'accesso via JDBC, con gli stessi dati autenticazione che uso da console, dove posso accedere senza nessun problema :wink:
_________________
bye,
Fuzzo
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Fri Mar 04, 2005 10:53 am    Post subject: Reply with quote

Fuzzo wrote:
Breve e conciso:
- Il server Linux MySQL non mi permette l'accesso via JDBC, con gli stessi dati autenticazione che uso da console, dove posso accedere senza nessun problema :wink:


Bene...ora dimmi se l'accesso via JDBC avviene da macchina locale o remota!?
Back to top
View user's profile Send private message
Fuzzo
Guru
Guru


Joined: 23 Jun 2004
Posts: 319
Location: Padova, Italy

PostPosted: Sat Mar 05, 2005 6:26 pm    Post subject: Reply with quote

Locale, da 127.0.0.1 :)
Purtroppo non ho ancora fatto in tempo a provare le tecniche che mi hanno suggerito pochi post sopra, ma di sicuro quando le proverò riferirò i risultati!
_________________
bye,
Fuzzo
Back to top
View user's profile Send private message
AlterX
l33t
l33t


Joined: 03 Apr 2004
Posts: 754
Location: rm -rf /*

PostPosted: Mon Mar 07, 2005 9:46 am    Post subject: Reply with quote

In ogni caso, intercetta l'errore che ti
da lo JDBC e postalo sul forum.

Bisogna capire se viene rifiutata la connessione, o se i driver JDBC sono configurati
bene sul server web!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum