Configurare MySQL per accettare connessioni remote: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(14 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
==Configurare MySQL per accettare connessioni remote==
{{Versioni compatibili|Squeeze|Wheezy}}
===Versioni compatibili===
== Introduzione ==
* Debian Etch 4.0
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.
* Debian Lenny 5.0
== Modifica di My.cnf ==
===Introduzione===
La soluzione, per fortuna, è molto semplice. Bisogna semplicemente aprire il file di configurazione di MySQL, <code>'''/etc/mysql/my.cnf'''</code> e commentare la riga:
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:
<pre>
<pre>
bind-address = 127.0.0.1
bind-address = 127.0.0.1
</pre>
</pre>
===Abilitare gli utenti remoti===
Oppure, se intendiamo permettere l'accesso a MySQL solo da un indirizzo specifico o da una rete specifica, possiamo sostituirla con la riga:
<pre>
bind-address = 172.16.96.236
</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>
GRANT ALL privileges ON testDB.* TO 'testUSER'@'Indirizzo_IP' IDENTIFIED BY 'testPassword';
GRANT ALL privileges ON testDB.* TO 'testUSER'@'Indirizzo_IP' IDENTIFIED BY 'testPassword';
</pre>
</pre>
In questo modo abbiamo abilitato l'utente testUSER a connettersi da remoto al database di nome testDB. La coppia di variabili <tt>'''testUSER - Indirizzo_IP'''</tt> può assumere i seguenti valori, a seconda del tipo di connessione che vogliamo permettere:
In questo modo abbiamo abilitato l'utente testUSER a connettersi da remoto al database di nome testDB. La coppia di variabili <code>'''testUSER - Indirizzo_IP'''</code> può assumere i seguenti valori, a seconda del tipo di connessione che vogliamo permettere:


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


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 <code>testUSER</code> sia il database <code>testDB</code> devono essere stati preventivamente creati e configurati tramite mysql> o tramite phpMyAdmin.


===Riavvio di MySQL===
== 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 37:
/etc/init.d/mysql restart
/etc/init.d/mysql restart
</pre>
</pre>
===Per approfondimenti vedi anche:===
== Per approfondimenti ==
[[Installare un ambiente LAMP: Linux, Apache, 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>
[[Configurare MySQL per accettare connessioni remote]]<br>
[[Configurare MySQL per accettare connessioni remote]]<br>
<br/>
 
: [[Utente:Ferdybassi|Ferdybassi]]
{{Autori
----
|Autore = [[Utente:Ferdybassi|Ferdybassi]]
[[Categoria:Server]]
}}
[[Categoria:Networking]]
 
[[Categoria:Database server]]

Versione attuale delle 16:18, 27 mag 2015

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"

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

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




Guida scritta da: Ferdybassi Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized