Scenario: Hai un sever remoto ( di cui hai il pieno controllo) configurato con una distro Linux su cui è installato, tra le altre cose, anche un server mysql (per esempio mariadb).
Normalmente, per accedere ai dati dei tuoi database gestiti dal server devi:
- effettuare un accesso tramite ssh, per esempio con il comando
ssh -lusername -p22 x.y.z.h
in cui sostituisci a username il nome utente effettiv, a x.y.z.h l'indirizzo IP della tua macchina remota e poi fornisci la password - eseguire il comando sudo mysql per collegarti dalla console della macchina remota al server mysql.
- selezionare il tuo database
- eseguire i comandi mysql che ti interessano
Questo procedimento risulta poco agevole e ti "costringe" a lavorare con la riga di comando, che inorgoglisce i duri e puri ... ma non tutti sono votati al sacrificio e sicuramente qualcuno vorrà lavorare in maniera più comoda.
Se non sei proprio un newby per quanto concerne MySql, molto probabilmente hai già installato sulla tua macchina locale phpmyadmin, uno dei più comuni client per i server Mysql.
Dato lo scenario descritto, è molto semplice configurare phpmyadmin in maniera tale da poter accedere al server della tua macchina remota. Di seguito elenco i passi da intraprendere per modificare la configurazione e raggiungere lo scopo.
Eseguire il comando:
ssh-NL 3307:localhost:3306 root@x.y.z.h
-N serve per eseguire il port forwarding
-L specifica che la porta 3306 locale deve essere inoltrata alla porta 3307 remota
Questo comando crea una connessione sicura tra la macchina locale e il server remoto; inoltre esegue un port-forwarding dalla porta locale 3306 alla porta remota 3307 l'utente che si sta connettendo e root e, come al solito, x.y.z.h è l'indirizzo IP del tuo server remoto; dovrai ovviamente fornire la password associata al utente root. se tutto è andato bene il comando ssh sta ora lavorando in background.
Apri il file /etc/phpmyadmin/config.inc.php con il tuo editor di testi preferito (duro e puro? vim!!!); alla fine del file aggiungi le seguenti linee:
# Add the following after all the existing server configurations:
$cfg['Servers'][$i]['verbose'] = 'Local';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$i++;
$cfg['Servers'][$i]['verbose'] = 'Remote Server 1';// Change this to whatever you like.
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$i++;
Salva e chiudi.
Adesso, apri il tuo browser e digita:
localhost/phpmyadmin
Se tutto è filato liscio, dovresti avere la seguente interfaccia:
che ti permetterà, scegliendo il server da utilizzare, di lavorare con i tuoi dati mysql in locale o con quelli memorizzati sul sever remoto.
Attenzione: come username dovrai usare un utente riconosciuto dal server mysql remoto (e la relativa password)