X

Come connettersi ad un database MySQL da remoto?


Per motivi di sicurezza molti provider non permettono di connettersi direttamente dalle applicazioni desktop ai db MySQL remoti. In pratica viene negato l’accesso alla porta 3306 a ciò che proviene al di fuori della rete ‘conosciuta’.

Si può ovviare in due modi o usando un tunnel SSH o un file php che funga da tunnel (tunneling).
Descriverò la prima tecnica usando Putty e MySQL Administrator.
La prima azione è quella di aprire un tunnel SSH con Putty (si presuppone che il provider supporti SSH):

  • Avviamo Putty
  • Click su “Tunnels” nella colonna di sinistra
  • In “Source port”, scrivere “3306”
  • In “Destination”, scrivere “server name:3306” (per esempio: “www.sergiogandrus.it:3306”)
  • Click su “Add”
  • Nella colonna di sinistra, click su “Session”
  • In “Host Name”, scrivere il nome del server (per esempio: “www.sergiogandrus.it”
  • Assicurarsi che “SSH” sia selezionato e che il numero della porta sia “22”
  • In “Saved Sessions”, dare un nome alla sessione (per esempio: “mysql-tunnel”
  • Click su “Save” per salvare la sessione
  • Click su “Open” per iniziare la sessione
  • Putty aprirà una finestra DOS che ti permetterà di autenticarti nel server. Inserisci username/password e lascia la finestra aperta per tutta la sessione.

Dopo aver creato il tunnel SSH col server siamo pronti per collegare il MySQL Administrator:

  • Avvia MySQL Administrator
  • In “Server Host”, scrivi “localhost”
  • In “username”, scrivi il nome del tuo database
  • In “password”, scrivi la password del tuo database
  • Click su “OK” e poi dovresti essere dentro.
Sergio Gandrus: Da febbraio 2024 lavoro come CTO presso Deva Connection Il mio stack è PHP/MySQL/Git/Docker. Lavoro con Agile (Scrum) e utilizzo principalmente AWS come cloud provider. Sono papà e marito. Nel tempo libero mi piace leggere, il buon vino e viaggiare.

View Comments (7)

  • Complimenti per la spiegazione, molto utile veramente.
    Anche se una cosa mi sarebbe piaciuta molto, conoscere anche il secondo metodo, cioè come usare il file php per creare un tunneling. Che ne pensi di fare un'altro guida su quest'argomento?

  • Grazie Marcs.
    Sul HTTP Tunneling non c'è molto da dire. E', in questo caso, un semplice file php che fa da tramite (o se preferisci da proxy) tra la tua applicazione e il server dove gira MySQL.
    E' chiaro che ogni applicazione ne abbia uno suo anche se le operazioni sono più o meno le stesse.
    Connessione al db MySQL
    Esecuzione di istruzioni SQL
    Invio del flusso di risposta all'applicazione remota.

  • Sarei interessato anch'io alla quastione http tunneling ... non è che sapresti indirizzarmi a qualche guida sul tunneling via java con proxy tipo php (jdbc)?

  • Sono 2 settimane che sto googlando in proposito.... è per la tesi di laurea... e ho l'applicazione java già bella pronta. Il fatto è che a causa di restrizioni(di sicurezza) di indirizzi ip il server che ospita il mio database non permette accesso alla porta 3306 che a un solo IP. Se impostassi l'ip di di un server proxy nella whitelist dovrei essere a cavallo ... il fatto è che non so come far comunicare la mia applicazione java (basata su J/connector) con il server proxy e inoltrare le query al mio server....
    Nessun consiglio in merito?
    Ti dirò che le sto provando proprio tutte.
    Quanto alla connessione putty ... non riesco a trovare 'Tunnels' nella colonna di sinistra ?????.
    Altrimenti sarò costretto a usare il mio computer come server il giorno della laurea ...(un po da pezzente).
    Se hai suggerimenti tieni presente che dispongo di connessione SSH col mio server... ma non so se poi è sicuro distribuire l'applicazione a terzi.
    Se sei arrivato fino a qui a leggere vuol dire che sei una buon' anima e ti ringrazio per la pazienza.
    Grazie. Ciao.

  • ciao...ho bisogno di una mano...faccio tutto il procedimento ma cliccando su "open"alla fine mi apre una finestra dos ma non posso inserire niente perchè me lo blocca..come posso fare??? grazie...