COME CONFIGURARE MYSQL PER ACCEDERE DA UN SERVER O CLIENT ESTERNO

COME CONFIGURARE MYSQL PER ACCEDERE DA UN SERVER O CLIENT ESTERNO

Durante le scorse settimane abbiamo migrato alcuni servizi Java su nuovi server 100% green e molto più performanti.

Ogni volta che installate MySQL su un server ricordate che:

oltre alla normale installazione di mysql, durante la quale creerete un utente root e gli altri utenti necessari (che vi servono eventualmente per accedere al/ai Database) è importante decidere se vorrete accedere al DB solo da localhost (cioè solo dalla macchina stessa) oppure anche dall’esterno.
Alla fine della procedura di installazione di MySQL ricordate sempre che, in base a come avete ideato la vostra infrastruttura, potrebbe essere necessario configurare MySQL per l’accesso da macchine differenti dal server stesso.

Riepilogo allora di seguito due dettagli importanti da ricordare:

– innanzi tutto occorre configurare il servizio di mysql per restare in ascolto anche di indirizzi esterni (e non solo del localhost); questo significa che occorre modificare il file di configurazione di mysql (di solito si trova in /etc/mysql/my.cnf oppure in directory a loro volta richiamate/incluse nel file stesso)
Ora cercate la riga in cui compare il bind-address (se utilizzate vim la ricerca del testo può essere eseguita utilizzando /[testo cercato] senza le parentesi quadre):
bind-address 127.0.0.1

e modificarla in:
bind-address 0.0.0.0

– poi dovete ricordare che è indispensabile dare all’utente voluto i permessi di accedere dall’esterno della macchina tramite un’istruzione di GRANT, questo passaggio si può fare collegandosi a mysql direttamente dal server stesso (da console o via ssh):
per collegarsi a mysql:
# mysql -u[user] -p[passowrd]

selezionare il database principale contenente le configurazioni di mysql (il databate si chiama ovviamente “mysql”):
mysql> use mysql;

applicare i privilegi per l’utente voluto (di seguito si applicano a root proveniente da qualsiasi indirizzo tramite la dicitura root@’%’):
mysql> GRANT ALL ON *.* to root@’%’ IDENTIFIED BY ‘your-root-password’;
(al posto di % potete specificare un preciso indirizzo IP di un altro server)

mysql> FLUSH PRIVILEGES;
(questo comando serve per effettuale la commit del comando precedente, altrimenti non sortirà alcun effetto)

 

Sperando che questo articolo sia stato utile: buona configurazione a tutti !