Fundo
Estou configurando um servidor MySQL. Seu arquivo de configuração (my.cnf) não possui a bind_address
opção. Pelo que entendi na documentação , seu valor é padronizado *
, o que deve fazer o servidor escutar todos os endereços IPv4 ou IPv6.
Problema
Quando inicio o servidor MySQL, espero que ele ouça IPv4. Em vez disso, ele escuta apenas IPv6, como verifiquei abaixo.
$ netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp6 0 0 :::33060 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
# -- snip --
Por que isso está acontecendo? E como posso deixar o servidor MySQL ouvir o endereço IPv4?
O que verifiquei até agora:
- Certifiquei-me de que não há outro arquivo de configuração que substitua involuntariamente o arquivo
bind_address
. Quando faço uma consultaSELECT @@bind_address
, ele é exibido corretamente*
conforme o esperado. - Confirmo que a rede IPv4 está configurada no meu sistema. A execução
ip addr show
mostra queeth0
foi atribuído um endereço IPv4. Na verdade, não acho que meu sistema esteja configurado para IPv6, pois não vejo nenhuminet
com IPv6. - Quando eu defino explicitamente
bind_address=0.0.0.0
my.cnf e reinicio o servidor, o servidor ainda escuta o endereço IPv6, mostrando a mesmanetstat
saída acima. - Não há outras instâncias do servidor MySQL em execução no meu sistema.
Ambiente
- Servidor MySQL: v8.0.36
- SO: CentOS 7