O endereço de ligação do MySQL 5.7 não funciona

17

Sempre configurei com êxito uma conexão remota para o MySQL 5.5.

Hoje instalei um novo servidor com o Ubuntu 16.04 e o MySQL 5.7. Mas, por algumas razões, não posso fazer com que esta instalação do MySQL ouça outros hosts 127.0.0.1.

Aqui está o meu /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Não consegui me conectar a este servidor MySQL a partir de um host remoto e, quando verifiquei o meu netstat, percebi que o MySQL apenas escuta conexões localhost.

lsof -Pni :3306 saída é:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

Qual é o problema?

Hast
fonte
Você rejeitou o mysql? Qual é a saída do netstat -lntp?
Linuxx 5/06/16
@ Linuxx Eu até reiniciei toda a máquina. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast
Eu suponho que você adicionou essa linha nesse arquivo. Remova essa linha e edite o arquivo /etc/mysql/mysql.conf.d/mysqld.cnf e altere o parâmetro lá.
Linuxx 5/06/16
11
@ Linuxx Isso funcionou como mágica :) Eu não notei que há outro diretório * .conf.d. Então, basicamente, o 5.7 mantém [mysql] config no diretório conf.d, enquanto as configurações [mysqld] são mantidas no mysql.conf.d. Obrigado! Por favor, responda, então eu aceito.
Hast
11
Alterei o endereço de ligação em /etc/mysql/mysql.conf.d/mysqld.cnf e /etc/mysql/conf.d/mysql.cnf, reiniciei o servidor e ainda vejo "tcp 0 0 127.0. 0.1: 3306 "quando executo <netstat -tulpen
Chepech 24/02

Respostas:

39

Eles mudaram o pacote MySQL para que o parâmetro bind esteja em /etc/mysql/mysql.conf.d/mysqld.cnf agora. Altere o parâmetro bind lá e remova qualquer coisa que você colocou em /etc/mysql/conf.d/mysql.cnf.

Linuxx
fonte
Isso é ridículo. O objetivo do "conf.d" era NÃO editar os padrões fornecidos pelo pacote e substituir por sua própria configuração. Mas como agora o "mysql.conf.d" está substituindo o nosso, não há maneira confiável de garantir que o nosso finalmente chegue, a menos que editemos "mysql.conf.d / mysqld.cnf".
Kenn
@kenn: adicione sua configuração sob mysql.conf.d / em vez e nomeá-la "x-alguma coisa"
Sino
3
Claro, mas qual é o sentido de "conf.d" então? O "mysql.conf.d" não é um padrão fornecido pelo pacote, que deve ser substituído pelo "conf.d"? Eu acho que a ordem de carregamento de "conf.d" e "mysql.conf.d" deve ser revertida em "/etc/mysql/my.cnf" no nível do pacote MySQL.
Kennedy