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

Accesso remoto a MySQL

Se hai pieno accesso al tuo server (sono richiesti privilegi di root):

Fase 1:modifica my.cnf (di solito si trova in /etc)

Trova la riga seguente:[mysqld] e assicurati che la riga skip-networking è commentato (o rimuove la riga) e aggiungi la riga seguente:

bind-address=YOUR-SERVER-IP

Ad esempio, se l'IP del tuo server MySQL è 66.166.170.28, l'intero blocco dovrebbe avere il seguente aspetto:

[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    = 66.166.170.28
# skip-networking
.......

Dove

  • indirizzo vincolante :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 metterla in stato di commento.

Fase 2:Concedi l'accesso a tutti gli host

Avvia il monitor MySQL con questo comando:mysql o /usr/local/mysql/bin/mysql . Il tuo prompt della shell ora dovrebbe apparire così:mysql> . Esegui questo comando:

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY "PASSWORD";

Dove:

  • NOME UTENTE è il nome utente che usi quando ti connetti usando il tuo script php.
  • PASSWORD è la password che usi durante la connessione.

Ora devi svuotare i privilegi di MySQL. Esegui questo comando:

FLUSH PRIVILEGES;

Esegui questo comando per uscire da MySQL:

exit;

Fase 3:riavvia mysql demone

/etc/init.d/mysqld restart

o

/etc/init.d/mysql restart

a seconda di quale distribuzione Linux è attualmente in esecuzione sul tuo server.