Como fazer com que o servidor MySQL se ligue ao host local apenas no Ubuntu 20.04 LTS?

Como fazer com que o servidor MySQL se ligue ao host local apenas no Ubuntu 20.04 LTS?

Usando a versão gerenciada pelo pacote apt do servidor MySQL no Ubuntu 20.04.3 LTS com uma instalação padrão do MySQL.

netstatmostra o servidor MySQL vinculado à interface IPv6 pública:

tcp6       0      0 :::33060                :::*                    LISTEN      2485/mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      2485/mysqld

No entanto, /etc/mysql/mysql.conf.d/mysqld.cnfmostra (linhas comentadas removidas por questões de brevidade):

[mysqld]
user            = mysql

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
mysqlx-bind-address     = 127.0.0.1

Eu tenho iptables e regras de firewall upstream que negam acesso externo a portas não aprovadas como MySQL, mas prefiro que o próprio MySQL esteja vinculado à interface correta no sistema de acordo com o arquivo de configuração.

Em outro sistema que foi atualizado este ano para 20.04.3, os arquivos de configuração são virtualmente idênticos e netstatmostram:

tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      1349/mysqld
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1349/mysqld

Responder1

Resolvi isso alterando as permissões /etc/mysql.cnfpara 0644. Acho que o servidor MySQL não gosta se esse arquivo estiver marcado como gravável/executável mundialmente. Estava marcado como 0777 e eu definitivamente não fiz isso. Ele foi instalado no sistema dessa forma a partir do mysql-serverpacote apt.

Isso provavelmente significa que existem atualmente (em dezembro de 2021) vários sistemas Ubuntu Server 20.04.3 LTS por aí que instalam o MySQL via apt e acidentalmente abrem a porta 3306 para o mundo. Como não há senha de root por padrão, isso provavelmente também significa que o MySQL pode ser rapidamente comprometido a partir de um sistema remoto.

informação relacionada