Come Accedere a MySQL dall’Esterno

Avete appena installato MySql da una macchina remota e non riuscite ad effettuare l’accesso con il vostro client?

Non vi preoccupate, è normale. La configurazione di default di MySQL non permette l’accesso dall’esterno. Chiaramente non per complicarvi la vita, ma per motivi di sicurezza, visto che un servizio aperto sull’esterno, non configurato come di deve, è sempre un ottimo inizio per fare breccia… Quindi attezione…

Morale a parte vediamo come procedere per abilitare l’accesso dall’esterno:

Per prima cosa dobbiamo modificare il file di configurazione /etc/my.cnf in modo che il server MySql sia in ascolto sull’IP esterno, quindi, assicuriamo che la linea skip-networking sia commentata o non presente. Dopo di che modifichiamo (o inseriamo se non esiste) la linea bind-address come segue :

bind-address=[IP-SERVER]

Salviamo e riavviamo MySql

/etc/init.d/mysqld restart

Una volta che MySql è in ascolto sull’interfaccia esterna dobbiamo impostare le grant sugli utenti che possono accedere dall’esterno. Quindi accediamo al server in locale e lanciamo il seguente comando.

mysql> GRANT ALL ON foo.* TO bar@’202.54.10.20′ IDENTIFIED BY ‘PASSWORD’;

Vediamo ci capire cosa si puo fare con il seguente comando; diamo grant complete sul database foo, su tutte le tabelle [*], all’utente bar che si connette dall’IP 202.54.10.20 che ha come password PASSWORD.
In questo modo possiamo collegarci solo se il nostro client ha come IP 202.54.10.20. Nel caso l’ip non sia sempre lo stesso, possiamo utilizzare il carattere jolly % come con l’operatore like, visto che l’ip del client viene messo in like con quello specificato nella grant.
Esempio TO bar@’%’ vuol dire “all’utente bar che si collega da ogni IP”.

Anche questa volta tutto molto semplice.