PDA

View Full Version : [MySQL] db locale con accesso dall'esterno


bouncey2k
20-01-2014, 22:12
Come da oggetto volevo sapere se è possibile avere un database mysql su locale (linux o windows è lo stesso) e poterci accedere tramite delle pagine PHP poste su un sito www.sito.it

Ovviamente immagino che si possa, ma volevo sapere quale procedura devo seguire, se potete darmi qualche dritta.

Grazie.

Daniels118
21-01-2014, 07:51
Si, è possibile, ma prima di scegliere il sito remoto dovresti assicurarti che consenta la connessione in uscita sulla porta utilizzata dal DB. Molti servizi di hosting consentono connessioni in uscita solo sulla porta 80 e 443 (non credo che facciano anche dei controlli per limitare i protocolli applicativi), quindi dovrebbe essere possibile utilizzare una di queste due porte.

Ma la vera domanda è: perché non ospiti il sito in PHP sul tuo server locale?

Tuvok-LuR-
21-01-2014, 11:01
è una pecionata e non è la cosa che ti serve in ogni caso:
se è per sperimentare prenditi un heroku o altro hosting in cloud qualsiasi che ti danno tutto quello che ti serve per dei semplici test.
se è per applicazioni in produzione: caccia li sordi :D

scherzi a parte oltre ad essere lentissimo è una rottura di zebedei per via delle problematiche legate all'ip dinamico, port forwarding etc (se hai fastweb non puoi proprio farlo tra l'altro)

bouncey2k
21-01-2014, 12:19
Si, è possibile, ma prima di scegliere il sito remoto dovresti assicurarti che consenta la connessione in uscita sulla porta utilizzata dal DB. Molti servizi di hosting consentono connessioni in uscita solo sulla porta 80 e 443 (non credo che facciano anche dei controlli per limitare i protocolli applicativi), quindi dovrebbe essere possibile utilizzare una di queste due porte.

Ma la vera domanda è: perché non ospiti il sito in PHP sul tuo server locale?

Perché ho necessità che il database rimanga in locale ma che possa essere utilizzato dall'esterno.

Quello che dici tu delle porte, vale per il DB residente sul sito, su locale posso farlo uscire come voglio immagino. Mentre sul sito posso connettermi a qualsiasi database con PHP.

@Tuvork-LuR- Non è per sperimentare, altrimenti con Apache avrei risolto su locale :muro: Dovrei prendere un ip statico e poi farlo uscire con il port forwarding?

Daniels118
21-01-2014, 13:25
Le porte possono essere bloccate sia in uscita che in ingresso. In ingresso (DB locale) di certo non avrai problemi a sbloccarle, il dubbio è se il provider di hosting remoto consente l'uscita verso la porta utilizzata dal db. Per esempio con altervista è possibile uscire solo sulle porte 80 e 443 e solo verso determinati domini appartenenti ad una white list (es. paypal), oppure se verifichi la tua identità con un sms puoi collegarti a qualunque indirizzo, ma sempre e solo sulle porte 80 e 443. Altri provider potrebbero imporre minori restrizioni.

In ogni caso resta un problema, ovvero specificare l'indirizzo al quale connettersi.
Questo problema può essere risolto in due modi:
1) acquistare un IP statico;
2) utilizzare un DNS dinamico.

Quest'ultima soluzione è ovviamente più economica, ma può comportare dei disservizi nel caso in cui il servizio DNS non sia disponibile e comunque c'è il rischio che le connessioni si interrompano se il provider della tua linea decide di cambiare il tuo IP. L'IP può cambiare anche senza che venga chiusa la connessione ADSL, sebbene a me non sia mai accaduto, pur restando connesso per più di un mese senza spegnere il modem.

bouncey2k
26-01-2014, 20:44
Mettendo che volessi comprare l'ip statico. Poi cosa devo configurare?

Daniels118
27-01-2014, 07:27
Se il servizio di hosting non blocca la porta predefinita di MySQL non dovi configurare nulla, eccetto ovviamente specificare l'indirizzo corretto quando crei una connessione al DB.

bouncey2k
27-01-2014, 14:38
Se il servizio di hosting non blocca la porta predefinita di MySQL non dovi configurare nulla, eccetto ovviamente specificare l'indirizzo corretto quando crei una connessione al DB.
Scusa, volevo una cosa più tecnica. Una volta comprato un indirizzo IP come lo utilizzo? Non è utilizzato tramite linea telefonica?

Ammettendo che io ho il mio database mysql sul mio computer a casa come faccio a utilizzarlo con quell'indirizzo IP tramite un'applicazione posta su un altro server (la porta mysql non è bloccata).

Daniels118
27-01-2014, 15:31
Prima di tutto l'IP statico non si può comprare, ma ti viene dato con particolari tipi di contratto, generalmente quelli business, vedi qui:
http://www.sostariffe.it/confronto-offerte-adsl/business/?q=i01

Una volta che ti è stato assegnato, non devi far altro che inserirlo nella configurazione della tua applicazione. E' difficile darti una spiegazione tecnica senza sapere quale sia l'applicazione, potrebbe essere in un file XML, oppure configurabile tramite un'interfaccia web, se specifichi di che applicazione si tratta potrei essere più specifico.

Se invece le pagine PHP le stai scrivendo tu, devi mettere l'indirizzo nell'istruzione per creare la connessione al DB, anche in questo caso però devi indicare quale funzione usi, intanto ti lascio un esempio:
$link = mysql_connect('151.16.30.69', 'mysql_user', 'mysql_password');

bouncey2k
27-01-2014, 17:32
Prima di tutto l'IP statico non si può comprare, ma ti viene dato con particolari tipi di contratto, generalmente quelli business, vedi qui:
http://www.sostariffe.it/confronto-offerte-adsl/business/?q=i01

Una volta che ti è stato assegnato, non devi far altro che inserirlo nella configurazione della tua applicazione. E' difficile darti una spiegazione tecnica senza sapere quale sia l'applicazione, potrebbe essere in un file XML, oppure configurabile tramite un'interfaccia web, se specifichi di che applicazione si tratta potrei essere più specifico.

Se invece le pagine PHP le stai scrivendo tu, devi mettere l'indirizzo nell'istruzione per creare la connessione al DB, anche in questo caso però devi indicare quale funzione usi, intanto ti lascio un esempio:
$link = mysql_connect('151.16.30.69', 'mysql_user', 'mysql_password');

Ho delle pagine php in cui devo inserire i parametri del DB mysql. Quindi se ho già una connessione ADSL dovrei disdirla ed acquistarne un'altra per avere un indirizzo IP fisso per il mio DB?:sofico:

Presupponendo che io acquisti una linea ADSL con Ip statico, come faccio a far visualizzare il mio programma intranet su www.miosito.it ? Grazie.

Tuvok-LuR-
27-01-2014, 19:45
Prima di tutto l'IP statico non si può comprare, ma ti viene dato con particolari tipi di contratto

beh molti isp lo danno come servizio aggiuntivo volendo anche ai privati

bouncey2k
27-01-2014, 22:36
beh molti isp lo danno come servizio aggiuntivo volendo anche ai privati

Una volta ottenuto questo indirizzo IP come faccio a fare uscire il mio DB all'esterno? Devo fare un portforwarding?

airon
27-01-2014, 23:59
Dipende dalla tua topologia di rete interna. La porta di default di myslq è la 3306. Puoi scegliere una porta a piacere per il tuo DB aprirla sul router/firewall e mandarla sul tuo PC in LAN.

Mi pare che su ste cose non sei molto ferrato, io fossi in te lascerei perdere.

Hai in mente la latenza che ci sarebbe tra macchina web e tuo db? Un conto è avere mysql sulla stessa macchina o in LAN su fibre channel/rete giga un conto è avere minimo 4-5 HOP a seconda di dove stai tu ed il server WEB...
Hai preso in considerazione l'upload ridicolo della tua ADSL?

Chissa mai che dati tieni su quel DB.

Saluti

OoZic
28-01-2014, 00:32
Dipende dalla tua topologia di rete interna. La porta di default di myslq è la 3306. Puoi scegliere una porta a piacere per il tuo DB aprirla sul router/firewall e mandarla sul tuo PC in LAN.

Mi pare che su ste cose non sei molto ferrato, io fossi in te lascerei perdere.

Hai in mente la latenza che ci sarebbe tra macchina web e tuo db? Un conto è avere mysql sulla stessa macchina o in LAN su fibre channel/rete giga un conto è avere minimo 4-5 HOP a seconda di dove stai tu ed il server WEB...
Hai preso in considerazione l'upload ridicolo della tua ADSL?

Chissa mai che dati tieni su quel DB.

Saluti

*