error 2003 hy000): can t connect to mysql server on remote server
Intentando conectar con el host remoto de MySQL(error 2003) (5)
Tengo una instancia de MySQL que se ejecuta en un servidor Debian y puedo conectarme localmente sin problemas. Sin embargo, no puedo conectarme de forma remota. Cuando intento esto desde mi línea de comando obtengo el siguiente error:
ERROR 2003 (HY000): Can''t connect to MySQL server on ''<server-ip>'' (110)
He añadido el usuario a mysql como ''usuario'' @ ''*'' y ''usuario'' @ ''localhost''. skip-networking en este servidor se establece en falso y la dirección de enlace se comenta en my.cnf. También intenté abrir el puerto 3306 en iptables usando el siguiente comando:
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
Aquí hay una lista de todas mis reglas de cortafuegos de iptable, que obtuve usando iptables -L:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
REJECT tcp -- anywhere anywhere tcp dpt:auth reject-with icmp-port-unreachable
ACCEPT icmp -- anywhere anywhere icmp type 8 code 0 state NEW,RELATED,ESTABLISHED,UNTRACKED
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ftp state NEW
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ssh state NEW
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:www state NEW
ACCEPT tcp -- <my-server> anywhere tcp spts:1024:65535 dpt:mysql state NEW
ACCEPT tcp -- anywhere anywhere tcp dpts:49152:65534 state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ''
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
LOG tcp -- anywhere anywhere tcp dpt:mysql LOG level debug
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
¿Alguien tiene alguna idea de dónde debo ir desde aquí?
Debe verificar la configuración de su servidor MySQL para ver si se enlaza con 127.0.0.1, entonces solo puede conectarse a mysql si su aplicación está en el mismo servidor. Hay una manera fácil, tener un webamin instalado y puede controlarlo a través de la interfaz web.
Esto puede deberse a que el puerto 3306 está cerrado, verifique el estado del puerto de su servidor
http://www.yougetsignal.com/tools/open-ports/
Si aparece cerrado, significa que no puede acceder a él desde fuera de la máquina para abrir el puerto
ufw - Firewall sin complicaciones
La herramienta de configuración predeterminada de firewall para Ubuntu es ufw. Los siguientes son algunos ejemplos de cómo usar ufw:
Primero, ufw necesita ser habilitado. Desde un indicador de terminal ingrese:
sudo ufw enable
Para abrir un puerto (mysql):
sudo ufw allow 3306
Para ver el estado del firewall, ingrese:
sudo ufw status
Según su respuesta, debe encontrar si hay un dispositivo entre usted y el servidor que bloquee su conexión. También debe asegurarse de poder hacer telnet al 3306 en la dirección de Ethernet de ese servidor cuando esté conectado al servidor ... de lo contrario, es probable que no haya vinculado el servicio a la my.cnf
Ethernet en my.cnf
... vea el parámetro de bind-address
.
Si usa la conexión VPN para conectar el servidor de base de datos remoto y recibió este tipo de error, simplemente eche un vistazo a dos pasos simples ...
1) En Windows Machine, vaya a la ruta "Panel de control / Red e Internet / Conexiones de red" y haga clic derecho en la red de área local y vaya a Propiedades. Haga clic en TCP / IPv4 y vaya a las propiedades. Asegúrese de que el servidor IP y DNS (si utiliza DHCP o no?).
2) Después de esto, reinicie la máquina y vuelva a comprobarlo.
Espero que esto funcione. En mi caso funciona.
Nota: asegúrese de que todas las configuraciones sean correctas. Esta respuesta es divertida pero funciona en mi caso :)
¡Gracias!
para mí, esto fue habilitar el puerto 3306 en el /etc/default/iptables
para permitir el tráfico entrante desde cualquier host al descomentar la línea a continuación:
#-A INPUT -p tcp --dport 3306 -j ACCEPT