Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186

    Collegare database MySQL in un NAS a Java

    Ciao a tutti!
    Cerco di spiegare meglio il titolo.
    Ho un database MySQL nel localhost che collego tranquillamente al programma java.
    Il problema sorge quando devo utilizzare il programma in un altro computer.
    Ovviamente al database non riesce ad accedere.
    Quando provo a trasferire il database nell'altro pc mi da degli errori di autorizzazioni e sinceramente non vorrei nemmeno pensarci molto dato che non sarebbe nemmeno una bellissima idea dover prima trasferire i database nelle cartelle e poi avviare il programma per ogni pc.
    Quindi ho pensato, avendo un NAS nella rete, di trasferire il database al suo interno e collegarmi da la, cosicchè tutti i pc collegati alla rete non abbiano problemi.

    Ora sorge il problema.
    In locale il database veniva salvato in questo percorso: C:\ProgramData\MySQL\MySQL Server 5.6\data .

    Devo metterlo in qualche posto specifico o posso creare una cartella e inserirlo la???

    E seconda cosa, forse più importante: per connettermi utilizzavo questa stringa (GRAZIE LeleFT per la pillola ahaha)
    private static final String DB_URL = "jdbc:mysql://localhost:3306/viaggi?user=user&password=password";

    Una volta inserito nel NAS che modifiche devo apportare???

    l'IP del NAS è 192.168.125.50

    Grazie mille e prego per una risposta veloce ahah

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    No, no e no. Non è così che funziona la cosa.

    MySQL non è un DBMS file based. E' un DBMS che funziona sempre e solo in modalità client-server. Quindi, non puoi prendere i dati e spostarli dove ti pare, né devi collegarti ai dati. Il client si deve sempre collegare al server.

    Ovvero, deve esistere un'istanza del server di MySQL (mysqld) in esecuzione su una macchina. Dove risiedano fisicamente i dati non interessa a nessuno, solo al server, che nella sua configurazione ha il percorso fisico dei dati.

    Tutti i client si devono collegare al server (alla macchina su cui sta girando l'istanza del server mysqld) e le richieste le devono indirizzare a lui. Sarà il server che sa dove sono fisicamente i dati e li manipola.

    Se i tuoi dati risiedono in una NAS ai client non gliene deve fregare nulla. Loro non devono sapere l'IP della nas... non devono nemmeno sapere che esiste una nas, quello è un dato che solo il server deve sapere.

    Quindi, l'unica cosa che i client devono conoscere è l'IP (o il nome) della macchina su cui sta girando il server di MySQL. Ed è quella l'informazione che va modificata nella stringa di connessione (al posto di "localhost").


    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 L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    No, no e no. Non è così che funziona la cosa.

    MySQL non è un DBMS file based. E' un DBMS che funziona sempre e solo in modalità client-server. Quindi, non puoi prendere i dati e spostarli dove ti pare, né devi collegarti ai dati. Il client si deve sempre collegare al server.

    Ovvero, deve esistere un'istanza del server di MySQL (mysqld) in esecuzione su una macchina. Dove risiedano fisicamente i dati non interessa a nessuno, solo al server, che nella sua configurazione ha il percorso fisico dei dati.

    Tutti i client si devono collegare al server (alla macchina su cui sta girando l'istanza del server mysqld) e le richieste le devono indirizzare a lui. Sarà il server che sa dove sono fisicamente i dati e li manipola.

    Se i tuoi dati risiedono in una NAS ai client non gliene deve fregare nulla. Loro non devono sapere l'IP della nas... non devono nemmeno sapere che esiste una nas, quello è un dato che solo il server deve sapere.

    Quindi, l'unica cosa che i client devono conoscere è l'IP (o il nome) della macchina su cui sta girando il server di MySQL. Ed è quella l'informazione che va modificata nella stringa di connessione (al posto di "localhost").


    Ciao.
    Perfetto grazie mille per la risposta!
    Quindi basterà collegare il secondo pc alla rete e tenere acceso quello che ha il db dentro vero??

    E un'altra cosa dato che ci sei ahah

    Quando eseguo il programma dal pc di origine funziona tranquillamente.
    Nel momento in cui creo il file .jar (che funziona nel pc di origine) e lo sposto nel secondo pc (sposto proprio tutta la cartella), quando clicco per aprire mi da un errore di java:

    Java Virtual Machine Launcher
    A Java Exception has occurred.

    Perchèèè?????
    (sto facendo proprio come fanno queste faccine)

    Grazie

  4. #4
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Quote Originariamente inviata da SigAlexey Visualizza il messaggio
    Perfetto grazie mille per la risposta!
    Quindi basterà collegare il secondo pc alla rete e tenere acceso quello che ha il db dentro vero??

    Comunque ho provato a cambiare localhost con l'IP del pc di origine e provandolo dal pc di origine, quindi nemmeno da un'altra macchina, non riesco ad accedere al db...

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quote Originariamente inviata da SigAlexey Visualizza il messaggio
    Nel momento in cui creo il file .jar (che funziona nel pc di origine) e lo sposto nel secondo pc (sposto proprio tutta la cartella), quando clicco per aprire mi da un errore di java:

    Java Virtual Machine Launcher
    A Java Exception has occurred.

    Perchèèè?????
    (sto facendo proprio come fanno queste faccine)

    Grazie
    Le cause di questo problema possono essere molteplici. Bisognerebbe vedere se ci sono ulteriori dettagli.
    Può essere una errata installazione della JVM, la mancanza di qualche libreria, una versione di JVM più vecchia di quella selezionata come target per il progetto...


    Quote Originariamente inviata da SigAlexey Visualizza il messaggio
    Comunque ho provato a cambiare localhost con l'IP del pc di origine e provandolo dal pc di origine, quindi nemmeno da un'altra macchina, non riesco ad accedere al db...

    Se sei sulla stessa macchina, devi usare "localhost" (oppure 127.0.0.1). In ogni caso, la mancata connessione, al 99% dei casi, è dovuta ad un'errata configurazione del server di MySQL o a problematiche di rete (firewall, il più delle volte).

    Il server di MySQL, nell'installazione standard, non accetta connessioni da nessuna macchina che non sia "localhost" e non prevede alcun utente abilitato a connettersi che non siano "root" e/o l'utente configurato durante l'installazione.

    Se vuoi poterti connettere da macchine diverse da localhost e tramite utenti diversi da "root" o l'utente impostato durante l'installazione, allora va modificata la configurazione del server.

    La configurazione del server prevede di garantire o meno l'accesso e/o determinate operazioni alla coppia "utente@macchina". Quindi, se vuoi poter accedere usando l'utente "pippo" dalla macchina "192.168.1.4" deve esistere una entry per l'utente "pippo@192.168.1.4".

    Inoltre, è necessario configurare eventuali firewall presenti sulle macchine in modo tale che non blocchino le connessioni verso la porta su cui è in ascolto il server MySQL (tipicamente 3306).

    Ma tutto questo esula dalle problematiche con Java: sono mere questioni di amministrazione di sistema e DB.

    PS: l'utente root non dovrebbe mai avere accesso dall'esterno, per questioni di sicurezza.

    Ciao.
    Ultima modifica di LeleFT; 20-05-2014 a 16:54
    "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

  6. #6
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Le cause di questo problema possono essere molteplici. Bisognerebbe vedere se ci sono ulteriori dettagli.
    Può essere una errata installazione della JVM, la mancanza di qualche libreria, una versione di JVM più vecchia di quella selezionata come target per il progetto...





    Se sei sulla stessa macchina, devi usare "localhost" (oppure 127.0.0.1). In ogni caso, la mancata connessione, al 99% dei casi, è dovuta ad un'errata configurazione del server di MySQL o a problematiche di rete (firewall, il più delle volte).

    Il server di MySQL, nell'installazione standard, non accetta connessioni da nessuna macchina che non sia "localhost" e non prevede alcun utente abilitato a connettersi che non siano "root" e/o l'utente configurato durante l'installazione.

    Se vuoi poterti connettere da macchine diverse da localhost e tramite utenti diversi da "root" o l'utente impostato durante l'installazione, allora va modificata la configurazione del server.

    La configurazione del server prevede di garantire o meno l'accesso e/o determinate operazioni alla coppia "utente@macchina". Quindi, se vuoi poter accedere usando l'utente "pippo" dalla macchina "192.168.1.4" deve esistere una entry per l'utente "pippo@192.168.1.4".

    Inoltre, è necessario configurare eventuali firewall presenti sulle macchine in modo tale che non blocchino le connessioni verso la porta su cui è in ascolto il server MySQL (tipicamente 3306).

    Ma tutto questo esula dalle problematiche con Java: sono mere questioni di amministrazione di sistema e DB.

    PS: l'utente root non dovrebbe mai avere accesso dall'esterno, per questioni di sicurezza.

    Ciao.
    OOOOOOOOOOOOOK proverò a vedere cosa si può fare ahaha
    Grazie mille e ciao

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.