Oppure

Loading
10/02/10 10:08
nicosiajl
Ciao ragazzi saluto tutti, e ringrazio perchè spesso il forum mi è stato di grandissimo aiuto.
Vi porgo il mio quesito: ho un database MySql su un pc remoto(con ip fisso e pubblico)
Con la mia applicazione tramite il vba comunico con questo database con delle chiamate xml, ma questo solamente per acquisire informazioni dal database.
Ecco il problema siccome con questa applicazione non dovrò solo leggere ma anche scrivere, cosa mi consigliate di fare?
Ho provato con la classica stringa di connessione e la gestione del db:
'''''''''''''''''''''''
Set conn = New ADODB.Connection
conn.ConnectionString = ("Driver={MySQL ODBC 3.51 Driver};Server=localhost;" & _
"Database=xxx;User=xxxx;Password=xxxxx;Option=4;";)
conn.Open
Objrs.Open "SELECT campo1 FROM tabella", conn, adOpenStatic
'''''''''''''''''''''''
ma funziona solo quando il database è in locale o nella rete(server interno), non fà su pc remoti o host.

Anticipati ringraziamenti
aaa
10/02/10 15:18
nessuno
Bisogna capire se il DBMS è "esposto" su internet ... sai nulla di come è stato installato?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
10/02/10 16:04
nicosiajl
Postato originariamente da nessuno:

Bisogna capire se il DBMS è "esposto" su internet ... sai nulla di come è stato installato?


MMmmMM cosa intenti?

Il mysql è installato sul nostro server, abbiamo un ip pubblico, e il database viene già interrogato dall'esterno però tramite pagine php.
Un'altra applicazione che attualmente viene usata dentro la lan interroga lo stesso database (in localhost), ma il prossimo step è riuscire a fare utilizzare questa app. anche agli user off-lan.
aaa
10/02/10 16:22
nessuno
Postato originariamente da nicosiajl:

MMmmMM cosa intenti?


Intendo se è raggiungibile da un qualsiasi client internet sulla porta standard di MySql (3306) ...

Il mysql è installato sul nostro server, abbiamo un ip pubblico, e il database viene già interrogato dall'esterno però tramite pagine php.


Quindi non dall'esterno ... semmai dall'interno del server ...

Un'altra applicazione che attualmente viene usata dentro la lan interroga lo stesso database (in localhost), ma il prossimo step è riuscire a fare utilizzare questa app. anche agli user off-lan.


Non ho capito ... se il server ha un indirizzo pubblico, come mai sta in LAN ? E poi che cosa vuol dire che "interroga in localhost" ? Non ha senso ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
11/02/10 16:37
nicosiajl
Non ho capito ... se il server ha un indirizzo pubblico, come mai sta in LAN ? E poi che
cosa vuol dire che "interroga in localhost" ? Non ha senso ...

il database risiede su un pc 'server' nella nostra lan, questo pc ha un indirizzo pubblico è dall'esterno è pingabile.
E' in lan perchè abbia, un applicazione interna che usa quei dati, questa applicazione attualmente interroga il db con una connectionstring impostata con un indirizzo di server internaalla lan "conn.ConnectionString = ("Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.x".
Il punto è proprio questo vorremmo portare questa applicazione fuori lan, e utilizzarla magari da casa.
aaa
11/02/10 17:05
nessuno
Postato originariamente da nicosiajl:

il database risiede su un pc 'server' nella nostra lan, questo pc ha un indirizzo pubblico è dall'esterno è pingabile.


Allora, ricominciamo ...

Il server sta nella vostra LAN ed espone il DBMS su internet ? Intendi questo quando dici "ha un indirizzo pubblico e dall'esterno è pingabile"? Cosa intendi per "esterno"? Da Internet? E il vostro server non sta in DMZ ?

E' in lan perchè abbia, un applicazione interna che usa quei dati, questa applicazione attualmente interroga il db con una connectionstring impostata con un indirizzo di server internaalla lan "conn.ConnectionString = ("Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.x".


Ma allora sta in una LAN non in DMZ su Internet !

Non ci sto capendo nulla ... perchè non ti spieghi chiaramente ...?

Il punto è proprio questo vorremmo portare questa applicazione fuori lan, e utilizzarla magari da casa.


In questo caso devi creare una VPN e usare il server da un client a casa tua tramite VPN.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
12/02/10 9:41
nicosiajl
Perdonami ricominciamo ...
Il server(chiamiamolo 192.168.5.1) che è una macchiana della nostra lan è un webserver è possiede sui suoi dischi un applicazione fatta in php che viene utilizzato da utenti in Francia e Canada per unificare i dati di lavoro in un unica banca dati. (Quindi sede italia, sede Francia e sede Canada) per usare questa applicazione vanno sull indirizzo pubblico 82.xxx.xxx.xxx/applicazione/…
Questo applicativo gestisce i dati su un database Mysql che è installato sullo stesso pc(192.168.5.1).
Poi Abbiamo un'altra applicazione (VBA), usata solo internamente nella lan (pc con ip 192.168.5.xxx) del SERVER (192.168.5.1), che interroga il database MYSQL ("conn.ConnectionString = ("Driver={MySQL ODBC 3.51 Driver};Server=192.168.5.1";) è fin qui tutto funziona.....uno dei sviluppi futuri è portare fuori Lan quest'ultimo applicazione, è magari modificando la connectionstring collegarci al database mediante indirizzo pubblico.
La vpn non farebbe altro che farmi entrare in rete da un qualsisasi posto è quindi nell'applicazione (non cambia nulla visto che avrei un indirizzo della stessa sotto rete e praticamente sono nella stessa lan), ma questo significa impostare la vpn a ogni utente che vuole usare l'applicazione fuori rete, Inoltre la conessione vpn è molto soggetta alla linea internet del user quindi spesso molto lenta, problema che non esiste se l'applicazione si connette in internet solo per fare una richiesta sql....


Spero di esser stato un pò + chiaro :hail:


aaa
12/02/10 10:07
nessuno
Postato originariamente da nicosiajl:

sull indirizzo pubblico 82.xxx.xxx.xxx/applicazione/…


Allora c'e' un router che fa natting dall'indirizzo 82.... porta 80 verso l'indirizzo privato del server ... ? Giusto?

Per poter lavorare con l'applicazione VBA, allora, dovreste fare un0operazione simile sul vostro router per nattare l'ip pubblico sull'indirizzo interno del server ma sulla porta di comunicazione usata da mysql (in genere 3306).

E' quindi un problema di configurazione dei vostri apparati di rete ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.