Configurare MySQL per accettare connessioni remote

There are no translations available.

Configurare MySQL per accettare connessioni remote

Debian-swirl.pngVersioni compatibili

Tutte le versioni supportate di Debian

Indice

[nascondi]

Introduzione

La versione pacchettizzata di MySQL Server 5 per Linux Debian Etch/Lenny ha, per ragioni di sicurezza, una caratteristica molto restrittiva: non accetta connessioni sulla porta 3306 (la porta a cui risponde MySQL) se non da localhost. Questo può essere un problema se vogliamo o dobbiamo tenere due macchine separate per un'applicazione (o sito) ed il relativo database.

Modifica di My.cnf

La soluzione, per fortuna, è molto semplice. Bisogna semplicemente aprire il file di configurazione di MySQL, /etc/mysql/my.cnf e commentare la riga:

bind-address = 127.0.0.1

Oppure, se intendiamo permettere l'accesso a MySQL solo da un indirizzo specifico o da una rete specifica, possiamo sostituirla con la riga:

bind-address = 172.16.96.236 ( specifica ad un singolo indirizzo l'accesso )
bind-address = 0.0.0.0 ( assegna l'accesso a tutti gli indirizzi )

Abilitare gli utenti remoti

A questo punto dobbiamo abilitare uno o più utenti per poter connettersi in remoto su un particolare database utilizzando l’istruzione SQL GRANT:

GRANT ALL privileges ON testDB.* TO 'testUSER'@'Indirizzo_IP' IDENTIFIED BY 'testPassword';

In questo modo abbiamo abilitato l'utente testUSER a connettersi da remoto al database di nome testDB. La coppia di variabili testUSER - Indirizzo_IP può assumere i seguenti valori, a seconda del tipo di connessione che vogliamo permettere:

  • 'testUSER'@'nomepc.dominio.com' : l'utente testUSER può connettersi dal PC di nome nomepc.dominio.com
  • 'testUSER'@'%.dominio.com' : l'utente testUSER può connettersi da ogni PC del dominio
  • 'testUSER'@'192.168.1.199' : l'utente testUSER può connettersi dal PC di indirizzo 192.168.1.199
  • 'testUSER'@'192.168.1.%' : l'utente testUSER può connettersi da ogni PC della rete di classe C 192.168.1.0
  • 'testUSER'@'192.168.1.0/255.255.255.0' : come l'esempio precedente
  • 'testUSER'@'%' : l'utente testUSER può connettersi da ogni PC

Ovviamente sia l'utente testUSER sia il database testDB devono essere stati preventivamente creati e configurati tramite mysql> o tramite phpMyAdmin.

Riavvio di MySQL

Come ultima cosa dobbiamo dire a MySQL di ricaricare le informazioni sui privilegi di connessione e utilizzo attraverso il comando:

FLUSH PRIVILEGES;

Un riavvio del server MySQL completerà l'opera:

/etc/init.d/mysql restart

Per approfondimenti

Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Backup di MySQL tramite script
Configurare MySQL per accettare connessioni remote

PS.
Si consiglia di creare un utente oltre quello ROOT altrimenti possono verificarsi negazione di accesso .

Italian - ItalyEnglish (United Kingdom)