Mysql
 sql >> Database >  >> RDS >> Mysql

Abilita l'accesso remoto al database MySQL

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,