Pagina 1 di 1

[RISOLTO]java e mysql!

Inviato: sab 28 mar 2009, 16:43
da blackman85
Salve a tutti. Ho un problema che non sono riuscito a risolvere. Ho scaricato eclipse e mysql-connector. Ho configurato il file my.cnf e avviato mysql. Qui ho già notato una cosa strana se faccio:

Codice: Seleziona tutto

mysql -h localhost -u user -p
si collega correttamente, mentre se faccio:

Codice: Seleziona tutto

mysql -h 127.0.0.1 -u user -p
mi dice:

Codice: Seleziona tutto

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
e non capisco perchè! Nel file host è correttamente configurato e so che localhost equivale a dire 127.0.0.1 (loopback). Vabbè per il momento ho lasciato perdere questa sottigliezza e sono andato avanti. Ho aperto eclipse ho aggiunto al build path il file mysql-connector-java-5.1.7-bin.jar ed ho lanciato un piccolo programma per effettuare la connesione al database mysql (attivo) Quando si prova a collegare ( la stringa che ho messo in url è "jdbc:mysql://localhost/test") mi da il seguente errore:

Codice: Seleziona tutto

Communications link failure
Last packet sent to the server was 0 ms ago.
Sono tre giorni che cerco la soluzione sono andato in giro per la rete ma non ho trovato niente!! [-(
A questo punto mi viene in mente una sola cosa non è che potrebbe essere un problema di firewall o di configurazione sbagliata di my.cnf??
Aspetto un vostro aiuto come sempre.
Grazie :thumbright:

Re: java e mysql!

Inviato: sab 28 mar 2009, 18:57
da sardylan
blackman85 ha scritto: [...] so che localhost equivale a dire 127.0.0.1 (loopback). [...]
localhost è un hostname!! Dipende da come hai configurato /etc/hosts... Può darsi che MySQL apra la porta 3306 bindando l'indirizzo della scheda di rete locale!! Prova a configurarlo direttamente con 127.0.0.1
blackman85 ha scritto: [...] Ho aperto eclipse ho aggiunto al build path il file mysql-connector-java-5.1.7-bin.jar ed ho lanciato un piccolo programma per effettuare la connesione al database mysql (attivo) Quando si prova a collegare ( la stringa che ho messo in url è "jdbc:mysql://localhost/test") mi da il seguente errore:

Codice: Seleziona tutto

Communications link failure
Last packet sent to the server was 0 ms ago.
[...]
Sempre per lo stesso motivo!!!

O gli imposti di bindare TUTTI gli indirizzi, oppure usa 127.0.0.1 (se lo vuoi solo in locale) e via!!

Re: java e mysql!

Inviato: dom 29 mar 2009, 21:23
da blackman85
localhost è un hostname!! Dipende da come hai configurato /etc/hosts...
Per quanto riguarda il file hosts penso di averlo configurato correttamente comunque il contenuto è questo:

Codice: Seleziona tutto

127.0.0.1       localhost
Può darsi che MySQL apra la porta 3306 bindando l'indirizzo della scheda di rete locale!! Prova a configurarlo direttamente con 127.0.0.1
Se ti stai riferendo a MySQL non ho capito come fare per configurarlo! Puoi essere più chiaro?

A propostito grazie per la risposta!! :thumbright:

Re: java e mysql!

Inviato: lun 30 mar 2009, 12:54
da sardylan
Beh... Esattamente non so come fare!!! :roll: :D
Su Apache c'è la direttiva Listen!! Su MySQL non so!!! Magari c'è qualcosa di equivalente...
Sicuramente trovi tutti in /etc/my.cnf ;) Nel medium c'è questo:

Codice: Seleziona tutto

# The MySQL server
[mysqld]
port		= 3306
socket		= /var/run/mysql/mysql.sock
Che sicuramente indica di bindare su tutte le interfacce...

Ora che ci penso mi capitava un errore simile... Prova a controllare che tutte le interfacce abbiano un indirizzo IPv4 configurato...

Comunque puoi controllare con netstat quali connessioni sono aperte e da quali processi!!! Così vedi come vanno le cose ;)

/etc/hosts va bene!!
:) :)

Re: java e mysql!

Inviato: lun 30 mar 2009, 13:13
da conraid
Per l'errore di connessione guarda se in my.cnf o in rc.mysql hai attivato l'opzione --skip-networking
Se sì disabilitala (anche se io preferisco mantenerla se non ho bisogno di connessioni remote)

Re: java e mysql!

Inviato: lun 30 mar 2009, 21:44
da blackman85
Per l'errore di connessione guarda se in my.cnf o in rc.mysql hai attivato l'opzione --skip-networking
Se sì disabilitala (anche se io preferisco mantenerla se non ho bisogno di connessioni remote)
Ok l'ho disabilitata anche se non penso serva farlo perché eclipse e mysql stanno sulla stessa macchina quindi non c'è una connessione remota. Comunque infine l'ho disabilitata ma l'errore rimane! Ma sicuro che non sia un problema di firewall?
/etc/hosts va bene!!
Se vabbene perchè questi comandi mi restituiscono il seguente output?

Codice: Seleziona tutto

# mysqlcheck -h localhost mysql
mysql.columns_priv                                 OK
# mysqlcheck -h 127.0.0.1 mysql
mysqlcheck: Got error: 2003: Can't connect to MySQL server on '127.0.0.1' (111) when trying to connect
# mysqlcheck -h 127.0.0.1:3306 mysql
mysqlcheck: Got error: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (111) when trying to connect
# mysqlcheck -h localhost:3306 mysql
mysqlcheck: Got error: 2003: Can't connect to MySQL server on 'localhost:3306' (111) when trying to connect
:shock: :shock: :shock: :shock: Ma perché non riconosce localhost come 127.0.0.1?? E poi localhost:3306 perché non funziona, visto che mysql è attivo sulla porta 3306!!!
Mi piacerebbe tanto sapere quando do il comando "mysql -h localhost" qual è l'indirizzo ip che prende visto che va a buon fine!! :shock: :shock: :shock:
Spero in un vostro aiuto, non so come risolvere!! Grazie a tutti!

Re: java e mysql!

Inviato: lun 30 mar 2009, 23:08
da sardylan
Non è che per caso specificando localhost (senza porta) utilizza il socket UNIX /var/run/mysql/mysql.sock???

Re: java e mysql!

Inviato: mar 31 mar 2009, 11:27
da conraid
blackman85 ha scritto:
Per l'errore di connessione guarda se in my.cnf o in rc.mysql hai attivato l'opzione --skip-networking
Se sì disabilitala (anche se io preferisco mantenerla se non ho bisogno di connessioni remote)
Ok l'ho disabilitata anche se non penso serva farlo perché eclipse e mysql stanno sulla stessa macchina quindi non c'è una connessione remota. Comunque infine l'ho disabilitata ma l'errore rimane! Ma sicuro che non sia un problema di firewall?
Anche a me da quell'errore, togliendo lo skip no.

Per connessione "remota" si intende anche una connessione "locale" che non usi la modalità socket. Nel senso che se un software non usa un socket (come dovrebbe) per le comunicazioni locali usa la connessione su una porta tcp. Potrei anche dire una cavolata, ma l'errore mi sembra quello.

Certo che se blocci i pacchetti local-to-local allora potrebbe essere sì un problema di firewall, ma questo lo sai tu se l'hai configurato in un certo modo o no.

Re: java e mysql!

Inviato: mar 31 mar 2009, 15:40
da blackman85
Non è che per caso specificando localhost (senza porta) utilizza il socket UNIX /var/run/mysql/mysql.sock???
Si utilizza questo socket però non ho capito cosa vuoi dire!
Certo che se blocci i pacchetti local-to-local allora potrebbe essere sì un problema di firewall, ma questo lo sai tu se l'hai configurato in un certo modo o no.
blackman85 ha scritto:
Per l'errore di connessione guarda se in my.cnf o in rc.mysql hai attivato l'opzione --skip-networking
Se sì disabilitala (anche se io preferisco mantenerla se non ho bisogno di connessioni remote)
Ok l'ho disabilitata anche se non penso serva farlo perché eclipse e mysql stanno sulla stessa macchina quindi non c'è una connessione remota. Comunque infine l'ho disabilitata ma l'errore rimane! Ma sicuro che non sia un problema di firewall?
Anche a me da quell'errore, togliendo lo skip no.

Per connessione "remota" si intende anche una connessione "locale" che non usi la modalità socket. Nel senso che se un software non usa un socket (come dovrebbe) per le comunicazioni locali usa la connessione su una porta tcp. Potrei anche dire una cavolata, ma l'errore mi sembra quello.

Certo che se blocci i pacchetti local-to-local allora potrebbe essere sì un problema di firewall, ma questo lo sai tu se l'hai configurato in un certo modo o no.
Il fatto è che il firewall non l'ho proprio configurato perché non so come fare....Ho disabilitato la voce #skip-network adesso potresti dire come configurare il firewall? Però secondo me non è questo il problema in quanto mi dice che non trova proprio il server non che la connessione è stata rifiutata!!

Re: java e mysql!

Inviato: mar 31 mar 2009, 20:08
da conraid
Se non l'hai configurato non hai nemmeno bloccato niente.
Posta l'output di

Codice: Seleziona tutto

# netstat -putane
# ping 127.0.0.1
come ti dicevo comunque a me quell'errore lo da con quell'opzione (che avevo sia in my.cnf sia in rc.mysql)

Re: java e mysql!

Inviato: mar 31 mar 2009, 21:55
da blackman85
Finalmente ho risolto!! Nel file "/etc/rc.d/rc.mysql" quando lancia il comando "mysqld_safe" gli da l'opzione --skip-network, quindi potevo configurare my.cnf quanto volevo ma non sarebbe mai andato!! Alla fine è bastata una piccola modifica al file "rc.mysql"
Grazie di nuovo a tutti!!
:thumbright: :thumbright: :thumbright: :thumbright: :thumbright: