Ciao a tutti,
problema da neofita: per uso personale/accademico (almeno per ora) ho installato su un PC che ho in casa una versione di Ubuntu Server(lo so mi voglio bene ) su cui ho installato MariaDB (ma con MySQL credo sia medesimo il problema)
Lo scopo specifico, o per lo meno è il primo progetto per cui lo vorrei implementare, è quello di fungere da database per un applicativo Android (anche se poi non è obbligatorio; pure fosse un sito o un app in Python il quesito regge).
Ora, punto 1, il mio problema è "il come si fa" a far interagire un app su mobile con un database in remoto.
L'app è banale, 2 funzioni: la prima è un form che compilo con una rubrica (anagrafica di persone o libri) e salvo il record sul DB, la seconda è un form di ricerca secondo qualsivoglia parametro (tipo per titolo libro o cognome).
Quello che sto cercando di mettere appunto è la parte di comunicazione tra app e DB.
E qui la parte difficile, ovvero quella che concerne la mia ignoranza: come accedo da un app al DB sul server che ho in casa?
On line ho trovato diverse cose:
- configuro una connessione ssh usando l'IP pubblico del mio server, ma il risultato è un accesso da remoto al SO più che un' "oggetto" atto all'accesso del DB per sottoporgli delle query.
- configuro un web socket per la comunicazione client/server; ma qui si entra a parlare di web server e protocollo HTTP, che mi pare di aver capito servano più ai siti internet che al mero data storage. (un db non ha un indirizzo web o si?)
- altro?
Punto due, la configurazione dei "connettori"(ammetto che è una risposta di @migliorabile ):
a) ti serve configurare il router affinche' si registry su uno di quei DNS gratuiti o, in alternativa, installi un software che scarichi da questi siti direttamente sul PC (dyndns, noip, ...). Questo serve perche' l'IP pubblico puo' cambiare ad ogni riavvio del router. Questi software ti permettono di assegnare un nome al tuo IP pubblico .
b) devi configurare il router in modo che le richieste di accedere al tuo IP pubblico ed ad una certa porta (nel caso di MYSQL e' la 3306) vengano dirottate verso il PC contenente MYSQL (IP e relativa porta)
A questo punto il tuo DB e' accessibile da Internet all'indirizzo del IP pubblico del tuo router (ad esempio 86.123.43.12, ovviamente non del tuo PC, che si trova all'interno della rete locale gestita dal router e quindi ha un IP locale, tipo 192.168.0.23) e relativa porta.
Configurato ciò lato server, serve altro per perchè un app possa accedere puntando, con una funzione tipo .connect e cursore annesso, una query sul mio db sito sul mio server?
Grazie