A porta 3306 parece estar fechada no meu servidor Ubuntu


33

Eu tenho dois servidores VPS e o MySQL está instalado, um para teste e outro para desenvolvimento. Um dos meus servidores não me permite conectar de fora. Com o usuário;

'mytestuser' @ '%'

De acordo com um localizador de porta aberta , a porta 3306 para o servidor incorreto parece estar fechada. Eu tenho programas C ++ e Java de minha própria audição em portas arbitrárias sem problemas. Por que isso está acontecendo e como posso corrigi-lo?

O Ubuntu instalado é o Ubuntu 11.10 (GNU / Linux 2.6.32-042stab072.10 x86_64)

Resultados de netstat -tupleem cada servidor

Servidor infrator

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

Servidor de trabalho

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -

Respostas:


76

O problema era que o servidor estava escutando apenas internamente.

Removendo a linha bind-address 127.0.0.1de /etc/mysql/my.cnfresolvido o problema.

Versões mais recentes do Ubuntu (≥16.04) podem conter esta linha /etc/mysql/mysql.conf.d/mysqld.cnf.


2
Isso funcionou para mim. Observe que o nome do arquivo correto /etc/mysql/my.cnfnão é /etc/mysql/my.conf.
Larry Battle

Alterei meu endereço de ligação para corresponder ao endereço IP externo do servidor e que funcionou para mim.
Buttle Butkus

Remova a linha completamente eo servidor irá ouvir todas as interfaces
s1mmel

Você salvou meu dia, tentando resolver esse problema há algumas semanas, obrigado!
budiantoip

9

Minha sugestão, se você tiver certeza de que as portas estão fechadas (acho estranho que um VPS tenha essa porta fechada), é necessário alterar o arquivo de configuração do MySQL para usar outra.

Simplesmente abra o arquivo de configuração no terminal sudo nano /etc/mysql/mysql.conf, e procure a [mysqld]seção. Nele, procure a linha que lê port = 3306. Altere-o para outra porta não usada e salve o arquivo.

Em seguida, basta reiniciar o VPS ou reiniciar o serviço, como sudo service mysql restart.

Apenas observe que, se o arquivo mysql.confnão estiver no mencionado acima, ele poderá estar nesses outros lugares:

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

E se o servicecomando não funcionar, faça o seguinte:

sudo /etc/init.d/mysql restart

Se o problema persistir, no meu caso, eu verificaria o iptables (na verdade, excluiria tudo do iptables apenas para começar novamente, se isso pudesse ser uma opção) ou qualquer outra opção ativada por firewall.

Como eles são VPS, eu também verificaria o Painel de Controle do VPS para ver se ele tem alguma opção que possa bloquear portas.

Além disso, eu executaria nmapno VPS para ver quais portas você abriu. Você precisa executá-lo de fora do VPS para ver quais portas eles abriram.

netstat -tuplen Também é uma boa idéia ver quais portas abertas você possui no servidor e quais estão no modo LISTEN.


Ei, eu tentei em outra porta e ainda sinto falta de comportamento, também tentei 'iptables -A INPUT -i eth0 -p tcp -m tcp --dport PORT -j ACEITAR', mas sem sorte :( .. edit im not o eth0 .. ainda pode ter esperança. #
AndyMay

@ Andy Resposta atualizada para incluir mais algumas sugestões.
Luis Alvarado

Obrigado pelas sugestões Luis, vou analisar isso.
Andy

Atualizei os resultados de netstat -tuple para a pergunta. Parece que há um problema aqui.
21313 Andy


6

Eu uso este método:

sudo ufw status
sudo ufw allow XXXX/tcp
# use a port other than the default/predictable 3306
# work outside, and close the door when you are done
sudo ufw deny XXXX/tcp

Não há necessidade de alterar outros arquivos de configuração e nenhuma porta extra aberta por padrão.


sudo ufw allow 3306/tcpEu tentei editar, mas não me deixou
Adam

1

Pode acontecer que sua configuração esteja no diretório /etc/mysql/mysql.conf.d/mysqld.cnf, verifique se não é esse o caso.


1
Eu estava tentando descobrir isso por três horas antes de ver isso, obrigado!
Oliver Ni
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.