GNU/Linux >> Linux Esercitazione >  >> Linux

Come associare il server MySQL a più di un indirizzo IP?

Soluzione 1:

No, non c'è (ho appena controllato 1 ora fa). Puoi commentare l'indirizzo bind in my.cnf:

Nota:« 1 ora fa » è ora più di 10 anni fa.

#skip-networking
#bind-address                   = 127.0.0.1

Se desideri solo 2 IP, dovrai utilizzare un firewall.

Per MySql versione 8.0.13 e successive , puoi specificare un elenco di indirizzi IP separati da virgole.

bind-address = 10.0.0.1,10.0.1.1,10.0.2.1

Documentazione MySql pertinente.

Soluzione 2:

L'associazione a 127.0.0.x non lo renderà disponibile a tutti i dispositivi, lo renderà disponibile solo localmente. Se desideri renderlo disponibile a tutte le interfacce, dovresti usare 0.0.0.0. Se desideri accedervi da più di una, ma meno di tutte le interfacce, devi collegarti a 0.0.0.0 e disattivare il firewall dalle interfacce attraverso le quali non vuoi accedere.

Inoltre, come secondo livello di sicurezza, dovresti assicurarti che tutti i tuoi utenti MySQL abbiano il campo host impostato su qualcosa di diverso da % (cioè qualsiasi host).

Soluzione 3:

Non puoi collegarti a più di un indirizzo IP, ma puoi invece collegarti a tutti gli indirizzi IP disponibili. Se è così, usa semplicemente 0.0.0.0 per un indirizzo vincolante nel file di configurazione di MySQL (ad es. /etc/mysql/my.cnf) come segue:

bind-address    = 0.0.0.0

Se l'indirizzo è 0.0.0.0, il server accetta connessioni TCP/IP su tutte le interfacce IPv4 dell'host del server.

Inoltre se l'indirizzo è :: , il server accetta connessioni TCP/IP su tutte le interfacce IPv4 e IPv6 dell'host del server. Utilizzare questo indirizzo per consentire le connessioni IPv4 e IPv6 su tutte le interfacce del server.

Oppure puoi semplicemente commentare bind-address= del tutto, quindi si legherà a tutti gli indirizzi. Ma assicurati di non avere skip-networking abilitato nel tuo my.cnf se vuoi consentire anche le connessioni remote (Leggi di più:MySQL:Consenti connessioni sia remote che locali).

Dopo aver modificato l'indirizzo di associazione, non dimenticare di riavviare il server MySQL tramite:

sudo service mysql restart

Eventualmente puoi considerare di eseguire più istanze di MySQL su una singola macchina (porte diverse) con replica Master/Slave. La replica consente di copiare i dati da un server di database MySQL (il master) su uno o più server di database MySQL (gli slave).

Leggi di più:

  • 5.3 Esecuzione di più istanze MySQL su una macchina su MySQL.com
  • Capitolo 17 Replica su MySQL.com

Soluzione 4:

No, non puoi. La pagina a cui ti colleghi indica chiaramente:

L'indirizzo IP a cui collegarsi. È possibile selezionare un solo indirizzo. Se questa opzione viene specificata più volte, viene utilizzato l'ultimo indirizzo fornito.

Se non viene specificato alcun indirizzo o 0.0.0.0, il server è in ascolto su tutte le interfacce.

Soluzione 5:

Come altri hanno risposto, non c'è ancora un modo per collegarsi selettivamente a più di un'interfaccia.

Linux ha alcuni strumenti TCP che lo rendono possibile. In questa configurazione, dovresti configurare mysql per l'ascolto su 127.0.0.1 e quindi utilizzare redir per esporlo su interfacce arbitrarie.

L'ho usato per aiutare un ospite virtuale a vedere mysql installato sulla macchina host.

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &

Linux
  1. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  2. Come installare MySQL Server su Debian 9

  3. Come installare MySQL Server su CentOS 7

  4. Come installare MySQL Server su Ubuntu 16.04

  5. Come dividere il terminale in più di una "vista"?

Come installare MySQL 8.0 su Ubuntu 18.04

Come installare MySQL 8 su CentOS 8

Come installare il server MySQL in Ubuntu

Come installare LAMP su un server Ubuntu 15.04

Come impostare la replica MySQL Master-Slave su RHEL 7?

Come installare MySQL Server su Ubuntu 20.04