Eu tenho doisVPSservidores, e ambos têmMySQLinstalado, um para teste e outro para desenvolvimento. Um dos meus servidores não me permite conectar de fora. Com o usuário;
'meuusuáriodeteste'@'%'
De acordo comum localizador de porta aberta, a porta 3306 do servidor incorreto parece estar fechada. Eu tenho meus próprios programas C++ e Java ouvindo em portas arbitrárias sem problemas. Por que isso está acontecendo e como posso consertar?
O Ubuntu instalado é o Ubuntu 11.10 (GNU/Linux 2.6.32-042stab072.10 x86_64)
Resultados de netstat -tuple
cada servidor
Servidor ofensivo
tcp 0 0 localhost.lo:submission *:* LISTEN root 39967664 -
Servidor funcionando
tcp 0 0 *:mysql *:* LISTEN mysql 1847519288 -
Responder1
O problema era que o servidor estava escutando apenas internamente.
Remover a linha bind-address 127.0.0.1
resolveu /etc/mysql/my.cnf
o problema.
Versões mais recentes do Ubuntu (≥16.04) podem ter esta linha no formato /etc/mysql/mysql.conf.d/mysqld.cnf
.
Responder2
Minha sugestão, se você tem certeza que as portas estão fechadas (acho estranho um VPS ter essa porta fechada) é alterar o arquivo de configuração do MySQL para usar outro.
Basta abrir o arquivo de configuração no terminal, sudo nano /etc/mysql/mysql.conf
e procurar a [mysqld]
seção. Nele, procure a linha que diz port = 3306
. Mude para outra porta não utilizada e salve o arquivo.
Em seguida, simplesmente reinicie o VPS ou reinicie o serviço, como sudo service mysql restart
.
Só para ressaltar que, se o arquivo mysql.conf
não estiver naquele que mencionei acima ele pode estar nestes outros locais:
/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf
E se o service
comando não funcionar, faça o seguinte:
sudo /etc/init.d/mysql restart
Se o problema persistir, no meu caso eu verificariatabelas de ip(Na verdade, eu excluiria tudo no iptables apenas para começar do zero, se isso pudesse ser uma opção) ou qualquer outra opção habilitada para firewall.
Por serem VPS, eu também verificaria o Painel de Controle do VPS para ver se há alguma opção que possa bloquear portas.
Além disso, eu correria nmap
no VPS para ver quais portas você abriu. Você precisa executá-lo fora do VPS para ver quais portas eles abriram.
netstat -tuplen
também é uma boa ideia ver quais portas abertas você tem no servidor e quais estão no modo LISTEN.
Responder3
Corrigi isso mudando bind-address 127.0.0.1
para bind-address 0.0.0.0
in /etc/mysql/mysql.conf.d
para que o MySQL escute em todas as portas.
Além disso, configurei uma conta de usuário mysql para ser usada remotamente. Para mais detalhes vejaHost 'xxx.xx.xxx.xxx' não tem permissão para se conectar a este servidor MySQL.
Responder4
Pode acontecer que sua configuração esteja no diretório /etc/mysql/mysql.conf.d/mysqld.cnf
, verifique se não é o caso.