Abilitare connessioni remote su mysql


Può capitare a volte che sia necessario connettersi a mysql da remoto, pensiamo ad esempio a un sistema in cui il webserver e il server sql risiedano su due macchine differenti.

Dobbiamo quindi permettere al webserver di connettersi in remoto (o anche all’interno della stessa LAN), al server di mysql, per far questo dobbiamo editare il file my.cnf di mysql.

Il sistema che ho utilizzato è ubuntu server 8.04. Ipotizziamo di dover abilitare le connessioni per il nostro server, la macchina che hosta il servizio di mysql avrà indirizzo ip 172.16.46.251.

Editiamo il file

nano /etc/mysql/my.cnf

a questo punto cerchiamo la riga contentente

bind-address            = 127.0.0.1

e sostiuiamola con

bind-address            = 172.16.46.251

ed il gioco è fatto, non abbiamo fatto altro che cambiare il bind del servizio in modo che si mettesse in ascolto sull’ip pubblico invece che solo sul localhost.

Ricordate che dovete anche modificare i permessi di accesso sui database, in quanto sui database già creati l’accesso è consentito solamente da 127.0.0.1.

Se per ipotesi volete permettere connessioni remote dall’ip 172.16.46.250 sul database ‘mysql’ con l’utente root, dovrete eseguire i seguenti comandi

[email protected] #  mysql

mysql > use mysql;

mysql> update db set Host='172.16.46.250' where Db='mysql';

mysql> update user set Host='172.16.46.250' where user='root';

mysql> flush privileges;

Ora dovreste potervi connettere in remoto da mysql, vi ricordo inoltre che se volete usare phpmyadmin dovrete ricordarvi di modificare l’indirizzo ip del server direttametne dal file di configurazione, cambiando quindi l’ip anche li da 127.0.0.1 all’ip che vi interessa, nello specifico del nostro esempio 172.16.46.251.

Saluti

Matteo

,

12 risposte a “Abilitare connessioni remote su mysql”

  1. ciao, vorrei kiederti un aiuto. Ho un PowerBook G4 con Osx 10.4, sono collegato ad internet tramite Airpot, prendendo la rete da un pc collegato con la Lan.
    Ho istallato mysql,poi ho digitato

    volo:/usr/local/mysql/bin mirdog$ ./mysqladmin -u root -p status
    Enter password:

    e poi mi é apparso

    ./mysqladmin: connect to server at ‘localhost’ failed
    error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’

    Come posso risolvere questo problema?????
    Grazie mille in anticipo.
    Ciao.
    Ale

  2. Significa che c’è già una entry associata a quell’utente li che riguarda quel particolare indirizzo IP, prova ad accedere via PhpMyadmin o tool simile dovresti vedere fra i privilegi questa entri ed eventualmente modificarla o aggiungerne una appropriata.

  3. Una guida molto semplice per Phpmyadmin la puoi trovare qua

    http://php.html.it/guide/lezione/2561/installazione-e-configurazione-base-di-phpmyadmin/

    Una domanda, ma visto che ti da quell’errore, che quindi risulta già permesso un accesso su quell’ip li se tu fai

    mysql -u root -p –host=91.121.11.188

    cosa ti dice?

    Hai dato qualcosa di analogo a

    mysql> update db set Host=’91.121.11.188′ where Db=’mysql’;

    in modo da poter fare query in remoto sul db mysql?

  4. Ho provato a fare una reinstallazione con una versione di ubuntu a 64bit, in effetti da anche a me quell’errore. Ho provato a fregarmene e pare funzionare lo stesso, evidentemente in alcuni sistemi o versioni particolari provvedere già lui a inserire tale regola.

  5. Molto utile la spiegazione riguardante SQL, proprio su mySQL verte il mio dubbio.
    Perche io non riesco a collegarmi se dal prompt scrivo (sudo mysql)?
    Ho dovuto creare questo script Bash allo scopo.

    #!/bin/bash
    sudo /etc/init.d/mysql restart
    wait 3
    sudo netstat -tap | grep mysql
    wait 3
    clear
    mysql -u root -p

    Molto semplice.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Per postare il commento, risolvi il quesito sottostante * Time limit is exhausted. Please reload CAPTCHA.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.