Configurare MySQL per accettare connessioni remote: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
=Versioni compatibili= | |||
* Debian Etch 4.0 | * Debian Etch 4.0 | ||
* Debian Lenny 5.0 | * Debian Lenny 5.0==Introduzione= | ||
==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. | 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, <tt>'''/etc/mysql/my.cnf'''</tt> e commentare la riga: | La soluzione, per fortuna, è molto semplice. Bisogna semplicemente aprire il file di configurazione di MySQL, <tt>'''/etc/mysql/my.cnf'''</tt> e commentare la riga: | ||
<pre> | <pre> | ||
bind-address = 127.0.0.1 | bind-address = 127.0.0.1 | ||
</pre> | </pre> | ||
=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: | A questo punto dobbiamo abilitare uno o più utenti per poter connettersi in remoto su un particolare database utilizzando l’istruzione SQL GRANT: | ||
<pre> | <pre> | ||
Riga 26: | Riga 24: | ||
Ovviamente sia l'utente <tt>testUSER</tt> sia il database <tt>testDB</tt> devono essere stati preventivamente creati e configurati tramite mysql> o tramite phpMyAdmin. | Ovviamente sia l'utente <tt>testUSER</tt> sia il database <tt>testDB</tt> 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: | Come ultima cosa dobbiamo dire a MySQL di ricaricare le informazioni sui privilegi di connessione e utilizzo attraverso il comando: | ||
<pre> | <pre> | ||
Riga 35: | Riga 33: | ||
/etc/init.d/mysql restart | /etc/init.d/mysql restart | ||
</pre> | </pre> | ||
=Per approfondimenti vedi anche:= | |||
[[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]<br> | [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]<br> | ||
[[Backup di MySQL tramite script]]<br> | [[Backup di MySQL tramite script]]<br> |
Versione delle 12:19, 3 gen 2010
Versioni compatibili
- Debian Etch 4.0
- Debian Lenny 5.0==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
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 vedi anche:
Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Backup di MySQL tramite script
Configurare MySQL per accettare connessioni remote