Não é possível conectar-se ao servidor MySql no servidor remoto

5
  • Conectando-se a: CentOS v ?? com o MySql 4. em Nashville (exemplo public ip = 11.11.11.11)

    Stack: Cable modem as gateway > router with forwarding > CentOs Box

  • Conexão de: Windows 2003 R2 em Dallas (exemplo ip público = 22.22.22.22)

Estou tentando acessar meu servidor MySql de um servidor remoto através do meu IP público. Quando tento me conectar, recebo um erro do tipo "não consegui abrir uma conexão com o host" após vários segundos. Não tem a chance de me pedir credenciais de login. Aqui estão algumas das coisas que fiz para abrir este servidor para conexões remotas:

  • Abra a porta 3306 no meu roteador e encaminhe-a para o endereço IP local da minha caixa MySql.
  • Seguiu as instruções em esta entrada do blog .
  • Criei um usuário no MySql com acesso ao meu banco de dados desejado ([email protected]). ** Claro, nem chega tão longe ... apenas pensei em incluir isso.

Quando tento fazer telnet da caixa em Dallas para a caixa em Nashville, na porta 3306, recebo o seguinte:

C:\Documents and Settings\Administrator>telnet 11.11.11.11 3306
Connecting To 11.11.11.11...Could not open connection to the host, on port 3306: Connect failed

No entanto, eu posso pingar 11.11.11.11 de 22.22.22.22 (desculpe pela má formatação ... eu tentei):

C:\Documents and Settings\Administrator>ping 11.11.11.11

Pinging 11.11.11.11 with 32 bytes of data:

Reply from 11.11.11.11: bytes=32 time=57ms TTL=54 Reply from 11.11.11.11: bytes=32 time=61ms TTL=54 Reply from 11.11.11.11: bytes=32 time=56ms TTL=54 Reply from 11.11.11.11: bytes=32 time=57ms TTL=54

Ping statistics for 11.11.11.11: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 56ms, Maximum = 61ms, Average = 57ms

As tabelas de IP para 11.11.11.11 são as seguintes:

[root@centos ~]# /sbin/iptables -L Chain INPUT (policy ACCEPT) target
prot opt source
destination
RH-Firewall-1-INPUT all -- anywhere anywhere
tcp -- 22.22.22.22 anywhere tcp dpt:mysql

Chain FORWARD (policy ACCEPT) target
prot opt source
destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT) target
prot opt source
destination

Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere
anywhere icmp any ACCEPT
esp -- anywhere anywhere ACCEPT ah -- anywhere
anywhere ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns ACCEPT udp -- anywhere anywhere
udp dpt:ipp ACCEPT tcp -- anywhere anywhere
tcp dpt:ipp ACCEPT all -- anywhere anywhere
state RELATED,ESTABLISHED ACCEPT
tcp -- anywhere anywhere state NEW tcp dpt:mysql ACCEPT
tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

@Sunny: Neste momento, o endereço IP local está listado em /etc/my.conf. Para ver o que aconteceu, substituí o endereço IP local por 11.11.11.11. Quando fiz isso, o MySql não pôde iniciar o backup. Eu acho que o endereço de ligação tem que ser um endereço IP, na verdade, na caixa.

POSSO me conectar ao MySql de outra máquina na mesma rede usando o endereço IP local. No entanto, mesmo com o local, não consigo me conectar usando 11.11.11.11.

Alguma ideia? Não sendo um cara linux, sou um pouco cego.

    
por Byron Sommardahl 26.02.2010 / 23:35

1 resposta

2

Verifique o my.conf e quais ligações o servidor MySql tem.

Pode ser que ele ouça somente na rede local.

Você está procurando a configuração bind-address em /etc/my.conf ou /etc/mysql/my.conf.

Se esta configuração estiver habilitada (normalmente para ligar somente ao localhost 127.0.0.1), comente e permitirá que o MySql escute em todas as interfaces disponíveis.

Em qualquer caso, acessar o servidor de banco de dados diretamente pela Internet não é uma boa ideia.

Recomendamos que você use o tunelamento ssh para acessar a máquina pela Internet.

No Windows, você pode usar massa para ssh ( criar um túnel ) na máquina MySql. Você pode encaminhar sua porta 3306 local para a porta remota, e então você pode acessar o servidor MySql usando localhost: 3306.

    
por 26.02.2010 / 23:53