Como ligar o servidor MySQL a mais de um endereço IP?

249

Existe uma maneira secreta de vincular o MySQL a mais de um endereço IP?

Tanto quanto eu posso ver o bind-address parâmetro no my.cnf não suporta mais de um IP e você não pode ter mais de uma vez.

    
por BlaM 02.09.2008 / 18:04

8 respostas

230

Não, não há (acabei de marcar há 1 hora). Você pode comentar o endereço de ligação em my.cnf:

#skip-networking
#bind-address                   = 127.0.0.1

Se você quiser apenas 2 IPs, você terá que usar um firewall.

    
por 02.09.2008 / 18:08
76

A ligação a 127.0.0.x não a disponibilizará para todos os dispositivos, ela estará disponível apenas localmente. Se você deseja disponibilizá-lo para todas as interfaces, você deve usar 0.0.0.0. Se você deseja acessá-lo de mais de uma, mas menos que todas as interfaces, você deve ligar para 0.0.0.0 e firewall das interfaces que você não quer que sejam acessadas.

Além disso, como uma segunda camada de segurança, você deve se certificar de que todos os seus usuários do MySQL tenham o campo host configurado para algo diferente de% (ou seja, qualquer host).

    
por 02.09.2008 / 18:29
34

Você não pode se ligar a mais de um endereço IP, mas pode se vincular a todos os endereços IP disponíveis. Se sim, use apenas 0.0.0.0 para um endereço de ligação no seu arquivo de configuração do MySQL (por exemplo, /etc/mysql/my.cnf) da seguinte forma:

bind-address    = 0.0.0.0

Se o endereço for 0.0.0.0, o servidor aceitará as conexões TCP / IP em todas as interfaces IPv4 do host do servidor.

Além disso, se o endereço for :: , o servidor aceitará as conexões TCP / IP em todas as interfaces IPv4 e IPv6 do host do servidor. Use esse endereço para permitir conexões IPv4 e IPv6 em todas as interfaces do servidor.

Ou você pode simplesmente comentar bind-address= , então ele será vinculado a todos os endereços. Mas certifique-se de que você não tenha skip-networking ativado em seu my.cnf se quiser permitir conexões remotas também (Leia mais: MySQL: Permitir conexões remotas E locais ).

Depois de alterar o endereço de ligação, não se esqueça de reiniciar seu servidor MySQL por:

sudo service mysql restart

Eventualmente você pode considerar rodar múltiplas instâncias do MySQL em uma única máquina (portas diferentes) com replicação Master / Slave. A replicação permite que os dados de um servidor de banco de dados MySQL (o mestre) sejam copiados para um ou mais servidores de banco de dados MySQL (os escravos).

Leia mais:

por 11.08.2014 / 11:37
19

Não, você não pode. A página que você vincula afirma claramente:

The IP address to bind to. Only one address can be selected. If this option is specified multiple times, the last address given is used.

If no address or 0.0.0.0 is specified, the server listens on all interfaces.

    
por 14.09.2010 / 22:45
8

Como outros já responderam, ainda não há como se ligar seletivamente a mais de uma interface.

O Linux tem algumas ferramentas TCP que tornam isso possível. Nesta configuração, você configuraria o mysql para escutar em 127.0.0.1 e então usar redirecionar para expô-lo em interfaces arbitrárias.

Eu tenho usado isso para ajudar um convidado de caixa virtual a ver o mysql instalado na máquina host.

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &
    
por 24.02.2017 / 21:23
6

Acho que sua pergunta está relacionada a esse bug link O relatório de erros sugere alguma solução alternativa.

    
por 02.09.2008 / 18:14
3

Na alteração my.cnf (normalmente /etc/mysql/my.cnf no Linux ou para Windows, verifique esta resposta.

bind-address                   = 127.0.0.1

para

bind-address                   = 0.0.0.0

Em seguida, reinicie o mysql (no Ubuntu service mysql restart ) no Windows, geralmente, reinicie o serviço através do Win + R services.msc

0.0.0.0 diz para ligar a todos os IPs disponíveis com a porta também dada em my.cnf

    
por 19.09.2017 / 20:34
1

Prior to MySQL 8.0.13, --bind-address accepts a single address value, which may specify a single non-wildcard IP address or host name, or one of the wildcard address formats that permit listening on multiple network interfaces (*, 0.0.0.0, or ::).

As of MySQL 8.0.13, --bind-address accepts a single value as just described, or a list of comma-separated values. When the option names a list of multiple values, each value must specify a single non-wildcard IP address or host name; none can specify a wildcard address format (*, 0.0.0.0, or ::).

Fonte: link

    
por 26.11.2018 / 10:46