O acesso remoto do MySQL não está funcionando - Port Close?

1

Não consigo estabelecer uma conexão remota com o MySQL. Do meu pc eu sou capaz de telnet para 3306 no servidor existente, mas quando eu tento o mesmo com o novo servidor ele trava por alguns minutos, em seguida, retorna

# mysql -utest3 -h [server ip] -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '[server ip]' (110)

Aqui estão algumas saídas do servidor.

# nmap -sT -O localhost -p 3306
...
PORT     STATE  SERVICE
3306/tcp closed mysql
...


# netstat -anp | grep mysql
tcp        0      0 [server ip]:3306        0.0.0.0:*                   LISTEN      6349/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     12286  6349/mysqld         /DATA/mysql/mysql.sock

# netstat -anp | grep 3306
tcp        0      0 [server ip]:3306    0.0.0.0:*        LISTEN      6349/mysqld
unix  3      [ ]         STREAM     CONNECTED     3306   1411/audispd

# lsof -i TCP:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  6349 mysql   10u  IPv4  12285      0t0  TCP [domain]:mysql (LISTEN)

Estou correndo ...

Versão do OS CentOS 5.8 (Final) mysql 5.5.28 (Remi)

Nota: Conexões internas para o mysql funcionam bem.

Eu desativei o IPtables, a caixa não tem outro firewall, ele roda o Apache na porta 80 e o ssh não tem problema.

Seguiram este tutorial - link

Eu limitei o endereço IP em my.cnf

user=mysql
bind-address = [sever ip]
port=3306

Eu até reiniciei apagando a pasta mysql no meu armazenamento de dados e executando

mysql_install_db --datadir=/DATA/mysql --force

Em seguida, recriou todos os usuários de acordo com o manual ...

link

Eu criei um usuário de teste

CREATE USER 'test'@'%' IDENTIFIED BY '[password]';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Então, tudo o que posso ver é que a porta não está realmente aberta. Onde mais eu poderia olhar?

obrigado

    
por dave.zap 06.12.2012 / 04:28

1 resposta

1
# nmap -sT -O localhost -p 3306
...
PORT     STATE  SERVICE
3306/tcp closed mysql
...

No comando acima você está obtendo a porta fechada porque o seu mysql está rodando no IP específico e não no host local. Portanto, quando você executar este comando no servidor, ele mostrará que a porta está fechada. Então isso faz sentido. Se você quer que isso funcione, você precisa substituir o bind-ip com o valor 0.0.0.0

Então, você pode substituir o localhost pelo servidor-ip e postar a saída aqui.

Além disso, sei que você desabilitou o firewall, mas ainda assim será ótimo se puder me ajudar com esses dois comandos:

iptables -L -n

cat /etc/hosts.deny

Além disso, você fez alguma otimização no mysql e alterou quaisquer valores para qualquer variável. Se sim, por favor poste o mesmo também.

    
por 06.12.2012 / 05:08