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 -tuple
em cada servidor
Servidor infrator
tcp 0 0 localhost.lo:submission *:* LISTEN root 39967664 -
Servidor de trabalho
tcp 0 0 *:mysql *:* LISTEN mysql 1847519288 -
/etc/mysql/my.cnf
não é/etc/mysql/my.conf
.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.conf
não estiver no mencionado acima, ele poderá estar nesses outros lugares:E se o
service
comando não funcionar, faça o seguinte: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
nmap
no 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.fonte
Corrigi isso alterando
bind-address 127.0.0.1
parabind-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 (consulte https://stackoverflow.com/a/24171107/132374 ).
fonte
Eu uso este método:
Não há necessidade de alterar outros arquivos de configuração e nenhuma porta extra aberta por padrão.
fonte
sudo ufw allow 3306/tcp
Eu tentei editar, mas não me deixouPode acontecer que sua configuração esteja no diretório
/etc/mysql/mysql.conf.d/mysqld.cnf
, verifique se não é esse o caso.fonte