Server MySQL non accessibile dalla macchina remota


14

Ho installato il server MySQL nel mio server Ubuntu locale (11.10). Non riesco a collegarmi al server da una macchina remota.

Quando ho provato: - nmap localhost , mostra quanto segue

SERVIZIO DI STATO PORTUALE
22 / tcp open ssh
80 / tcp apri http
139 / tcp netbios-ssn aperto
445 / tcp microsoft-ds aperto
631 / tcp ipp aperto
3306 / tcp mysql aperto

Significa che 3306la porta MySQL è aperta, giusto? Ma quando ho provato nmap 192.168.0.50, che è l'IP del server, ottengo quanto segue: -

SERVIZIO DI STATO PORTUALE
22 / tcp open ssh
80 / tcp apri http
139 / tcp netbios-ssn aperto
445 / tcp microsoft-ds aperto

Questo significa che la porta non è aperta quando si accede tramite IP? In tal caso, come posso aprire la porta?

Avevo provato il seguente codice, ma sembra che non abbia funzionato.

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Cosa c'è che non va qui?

Risposte:


22

Il tuo servizio MySQL è destinato a servire solo localhost (interfaccia bind). Questa è l'impostazione predefinita per motivi di sicurezza. Se hai davvero bisogno di accedervi direttamente da altri host, c'è un buon modo per abilitare l'accesso remoto a MySQL su Ubuntu che potresti seguire:

  1. come root, apri il tuo /etc/mysql/my.cnfo /etc/mysql/mysql.conf.d/mysqld.cnf con il tuo editor preferito, poiché su sistemi diversi si è scoperto che è diverso.
  2. cerca la [mysqld]sezione e la bind-addressparola chiave lì dentro . Questo di solito è impostato su 127.0.0.1- cambialo in modo che corrisponda al tuo "normale" indirizzo IP
  3. salva il file e ricarica il servizio (es. usando service mysql restart)

Ricorda che devi consentire ai tuoi utenti remoti di accedere ai loro database da remoto, impostando i GRANT appropriati - ad es

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

Nota il @'%', che significa "da qualsiasi host".


Lieto di leggere - e di niente!
Izzy,

il collegamento è interrotto :(
dino

2
@dino non più. L'ho risolto e ho anche incluso un estratto, quindi se muore di nuovo i passaggi richiesti sono ancora qui. Mio Dio non l'ho fatto dall'inizio, ma come puoi vedere dal timestamp, questa è stata una delle mie prime risposte. Impariamo tutti :)
Izzy

2
Il campo dell'indirizzo associato era sotto /etc/mysql/mysql.conf.d/mysqld.cnfper il mio sistema.
Eric G,

@EricG Grazie per il puntatore. La mia risposta è stata 5 anni fa, quindi le configurazioni sono leggermente cambiate (e probabilmente rese più modulari).
Izzy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.