Di solito l'accesso remoto al server di database MySQL è disabilitato per motivi di sicurezza. Tuttavia, a volte è necessario fornire l'accesso remoto al server di database MySQL da casa o da un server web. Puoi seguire questi passaggi per abilitarlo.
Passaggio 1:accedi utilizzando SSH (se il server è esterno al tuo ambiente o intranet)
Innanzitutto, accedi tramite ssh al server di database MySQL remoto da Windows utilizzando PuTTy o da Linux utilizzando SSH
Fase 2:modifica il file my.cnf
Una volta connesso è necessario modificare il file di configurazione del server MySQL my.cnf utilizzando un editor di testo come vi:
- Su Debian Linux il file si trova in /etc/mysql/my.cnf posizione.
- Su Red Hat Linux/Fedora/Centos Linux il file si trova in /etc/my.cnf posizione.
Per modificare /etc/my.cnf, eseguire:
# vi /etc/my.cnf
- Su Windows , il file my.ini si trova in C:\Programmi\MySQL\MySQL Server X.Y (X.Y è il numero di versione del server MySQL)
Per Windows, apri il file my.ini nel blocco note
Fase 3:una volta aperto il file, individua la riga che recita come segue
[mysqld]
Assicurati che la rete salta riga sia commentata (o rimuovi la riga) e aggiungi la riga successiva
bind-address=YOUR-SERVER-IP
Ad esempio, se l'IP del tuo server MySQL è 173.234.21.12, l'intero blocco apparirà come segue:
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 173.234.21.12 # skip-networking ....
Dove,
- indirizzo di rilegatura :indirizzo IP a cui associare.
- salta la rete :Non ascoltare affatto le connessioni TCP/IP. Tutte le interazioni con mysqld devono essere effettuate tramite socket Unix. Questa opzione è altamente consigliata per i sistemi in cui sono consentite solo richieste locali. Poiché è necessario consentire la connessione remota, questa riga dovrebbe essere rimossa da my.cnf o commentata.
Fase 4:salva e chiudi il file
Su Debian/Ubuntu Linux, digita il seguente comando per riavviare il server mysql:
# /etc/init.d/mysql restart
Su RHEL / CentOS / Fedora / Scientific Linux, digita il seguente comando per riavviare il server mysql:
# /etc/init.d/mysqld restart
Su Windows, apri il prompt dei comandi come amministratore e digita
net stop MySQL net start MySQL
Fase 5:Concedi l'accesso all'indirizzo IP remoto
Concedi l'accesso a un nuovo database
Se vuoi aggiungere un nuovo database chiamato foo per la barra degli utenti e l'IP remoto 162.72.20.23, devi digitare i seguenti comandi al prompt di mysql:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Concedi l'accesso a un database esistente
Supponiamo che tu stia sempre effettuando una connessione dall'IP remoto chiamato 162.72.20.23 al database chiamato webdb per l'utente webadmin. Per concedere l'accesso a questo indirizzo IP per il database esistente, digita il seguente comando al prompt di mysql:
mysql> update db set Host='162.72.20.23' where Db='webdb'; mysql> update user set Host='162.72.20.23' where user='webadmin';
Fase 6:disconnessione da MySQL
Digita il comando exit per disconnettersi da mysql:
mysql> exit
Passaggio 7:apri la porta 3306
Una regola di iptables di esempio per aprire il firewall iptables di Linux
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
O consenti solo la connessione remota dal tuo server web che si trova in 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
O consenti solo la connessione remota dalla tua sottorete lan 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Infine salva tutte le regole (comando specifico RHEL / CentOS):
# service iptables save
Su Windows, vai su Pannello di controllo> Windows Firewall> Aggiungi regola in entrata per la porta 3306
Fase 8:verifica l'accesso remoto al database MySQL
Dal tuo sistema remoto o desktop digita il seguente comando:
$ mysql -u webadmin –h 173.234.21.12 –p
Su Windows, esegui il programma della riga di comando MySQL e accedi come amministratore digitando il seguente comando dalla cartella principale di MySQL (ad es. Programmi\MySQL\MySQL Server 5.5\bin):
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p
In cui si,