Acabei de instalar um novo servidor ubuntu com mysql (percona 5.5), mas ele se recusa a aceitar conexões de hosts remotos
Aqui está o que acontece se eu tentar conectar-me a este servidor remotamente:
mysql -h10.0.0.2 -uroot -pmypassowrd
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.2' (111)
telnet 10.0.0.2 3306
Trying 10.0.0.2...
telnet: Unable to connect to remote host: Connection refused
Quando verifiquei se o mysql escuta conexões remotas, vi o seguinte:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Como você pode ver, diz o 127.0.0.1:3306que significa "Eu aceito apenas conexões locais".
Eu verifiquei minhas variáveis skip_networkinge bind-address- tudo está desativado:
mysql> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%bind%';
Empty set (0.00 sec)
Eu tenho outro servidor com absolutamente a mesma configuração e funciona muito bem:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
Qual pode ser a razão disso? Como faço para o mysql responder a conexões remotas?
bind_addressestá disponível apenas desde a versão 5.6 ( bugs.mysql.com/bug.php?id=44355 ), portanto, ela retornará um conjunto vazio na v5.5, mesmo que esteja definido.