Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    55

    problemi con connessione a un db mysql in LAN

    Buongiorno a tutti
    vi spiego in breve il mio problema .. e spero che qualcuno sappia come risolverlo
    allora :

    In azienda abbiamo un rete locale , e tramite il mio gestionale java creato con net beans che utilizza connessioni jdbc a un db che risiede sun pc della rete considerato come server , devo poter trattare i dati cioè scrivere , visualizzare ecc...

    Utilizzando il gestionale sul pc dove risiede il database con questa connessione :

    Class.forName("com.mysql.jdbc.Driver");

    connectionUrl = "jdbc:mysql://localhost/gestionale?" +
    "user=utente&password=pass";
    Connection con = DriverManager.getConnection(connectionUrl);

    funziona perfettamente.

    Da un'altro pc delle rete naturalmente così no , perchè non è più local host , ma anche così :

    connectionUrl = "jdbc:mysql://192.168.1.5/gestionale?" +
    "user=utente&password=pass";

    essendo 192.168.1.5 l'ip del mio pc server nella rete

    non si collega uagualmente.

    Il database mysql è stato creato con easyphp.

    secondo voi cosa può essere ? per gli altri pc della rete bisogna utilizzare un'altro tipo di stringa di connessione o di driver?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Se non si collega, ci sono delle cause.
    La logica ed il codice usato sono a posto.

    Le cause più frequenti sono queste:

    1) Viene sollevata un'eccezione dovuta alla mancanza di librerie (il driver JDBC) sul PC che tenta la connessione. Si risolve installando correttamente il programma con tutte le librerie

    2) C'è un firewall da qualche parte (sul PC remoto o su quello dove c'è MySQL) che blocca la connessione (può bloccare l'IP e/o la porta di comunicazione di MySQL). Va indagato e corretto il problema a livello di firewall.

    3) L'utente con il quale si tenta di effettuare la connessione non ha i permessi per farlo da un PC remoto: va correttamente configurato il server MySQL affinchè l'utente possa fare connessioni da un PC remoto.

    4) Altre varie ed eventuali

    Lo stacktrace dell'eccezione che sicuramente viene sollevata può aiutarti a capire meglio quale delle casistiche stai riscontrando... noi, senza ulteriori informazioni, no.

    Dal fatto che dici che MySQL è stato installato con EasyPHP, direi che al 90% la causa è il punto 3 (mi domando perchè si continui ad usare quel prodotto, quando l'installazione standard di MySQL + PHP è così semplice da fare).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    55
    Innanzi tutto grazie per aver risposto e per le tue informazioni

    dopo aver letto il tuo messaggio .. anche secondo me il problema sarà dovuto al punto 3 ...

    perchè provando questa connessione:

    connectionUrl = "jdbc:mysql://192.168.1.5/gestionale?" +
    "user=utente&password=pass";


    la table in cui dovrebbero uscire i miei dati o esce bianca priva di dati con questa eccezione :


    SQL Exception: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: 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.
    SQL Exception: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: 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.


    oppure carica per 1 ora :-D e non esce niente...

    Questo capita anche se provando il gestionale sul pc server scrivo al posto di locahost quell'ip scritto poco fa che identifica quel pc nella rete.

    come si fà a configurare il server Mysql affinchè l'utente possa fare connessioni da un PC remoto? purtroppo non l'ho mai fatto ... mi potresti aiutare ???

    Grazie in anticipo

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Dal tipo di eccezione, direi che il problema si sposta al punto 2 (ciò non esclude che ve ne siano anche riguardo al punto 3).
    Ci sono problemi con la connessione verso il server: la macchina "client" riesce a raggiungere quella dove c'è il server MySQL ma questo non risponde. Probabilmente c'è un firewall che ne blocca la connessione.

    Verifica che la porta 3306 non sia chiusa da qualche firewall e/o che non vi siano altri programmi (come l'antivirus, ma mi pare strano) che bloccano l'accesso.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    55
    ok grazie! mi metto subito a lavoro ;-)

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    55
    a dimenticavo ieri ho modificato le impostazioni di apache (httpd.conf. ) e ora scrivendo nei browser degli altri pc della rete 192.168.1.5/mysql posso accedere alla gestione del database e vedere i dati (tramite phpmyadmin)... ma da programma java no cmq ora continuo a controllare le porte che hai detto e i firewall ! ciaooooo

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da gua
    a dimenticavo ieri ho modificato le impostazioni di apache (httpd.conf. ) e ora scrivendo nei browser degli altri pc della rete 192.168.1.5/mysql posso accedere alla gestione del database e vedere i dati (tramite phpmyadmin)... ma da programma java no
    Questo è ovvio: PHP lavora sulla stessa macchina del server MySQL. Quindi effettua una connessione in locale, costruisce la pagina HTML che poi verrà spedita al client. Il client NON accede a MySQL. Accedendo da Java, invece, stai cercando proprio di collegarti direttamente al server MySQL, da una macchina remota. E questo non ti viene concesso per problemi o con i firewall o con i permessi su MySQL.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    55
    Finalmente ci sono riuscito :-D

    dopo aver controllato e ricontrollato accessi a porte, configurazioni firewall ecc... e non ottenendo le risposte che mi aspettavo. Sono tornato a suppore che dipendeva dal tuo punto 3 .
    cioè la configurazione del server mysql.

    infatti era cosi'.

    modificando il file di configurazione del server mysql/my.cnf :

    cercando la riga contentente

    bind-address = 127.0.0.1

    e sostituendola con

    bind-address = 192.168.1.5

    ed il gioco è fatto

    e naturalmente modificare i privilegi del db , concedendo all'utente anche la possibilità di connettersi da altri host e non solo in locale.

    Ora funziona tutto perfettamente. Grazie mille per tutto l'aiuto che mi hai dato in questi giorni!

    alla prossima ciaoo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.