El puerto 3306 parece estar cerrado en mi servidor Ubuntu

El puerto 3306 parece estar cerrado en mi servidor Ubuntu

tengo dosVPSservidores, y ambos tienenmysqlinstalado, uno para pruebas y otro para desarrollo. Uno de mis servidores no me deja conectarme desde fuera. Con el usuario;

'miusuariodeprueba'@'%'

De acuerdo aun buscador de puertos abiertos, el puerto 3306 del servidor infractor parece estar cerrado. Tengo mis propios programas C++ y Java escuchando en puertos arbitrarios sin ningún problema. ¿Por qué sucede esto y cómo puedo solucionarlo?

Ubuntu instalado es Ubuntu 11.10 (GNU/Linux 2.6.32-042stab072.10 x86_64)

Resultados de netstat -tupleen cada servidor

Servidor infractor

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

Servidor de trabajo

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

Respuesta1

El problema era que el servidor solo escuchaba internamente.

Eliminar la línea bind-address 127.0.0.1resolvió /etc/mysql/my.cnfel problema.

Las versiones más nuevas de Ubuntu (≥16.04) pueden tener esta línea en formato /etc/mysql/mysql.conf.d/mysqld.cnf.

Respuesta2

Mi sugerencia, si estás seguro de que los puertos están cerrados (me parece raro que un VPS tenga ese puerto cerrado) es cambiar el archivo de configuración de MySQL para usar otro.

Simplemente abra el archivo de configuración en la terminal sudo nano /etc/mysql/mysql.confy busque la [mysqld]sección. En él, busca la línea que dice port = 3306. Cámbielo a otro puerto que no utilice y guarde el archivo.

Luego simplemente reinicie el VPS o reinicie el servicio, como sudo service mysql restart.

Sólo para tener en cuenta que, si el archivo mysql.confno está en el que mencioné anteriormente, puede estar en estos otros lugares:

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

Y si el servicecomando no funciona, haz esto:

sudo /etc/init.d/mysql restart

Si el problema persiste, en mi caso comprobaríaiptables(De hecho, eliminaría todo en iptables solo para comenzar de nuevo si esto pudiera ser una opción) o cualquier otra opción habilitada para firewall.

Como son VPS, también consultaría el Panel de control de VPS para ver si tiene alguna opción que pueda bloquear puertos.

Aparte de eso, ejecutaría nmapel VPS para ver qué puertos ha abierto. Debes ejecutarlo desde fuera del VPS para ver qué puertos han abierto.

netstat -tuplenTambién es una buena idea ver qué puertos abiertos tienes en el servidor y cuáles están en modo ESCUCHA.

Respuesta3

Solucioné esto cambiando bind-address 127.0.0.1a bind-address 0.0.0.0in /etc/mysql/mysql.conf.dpara que MySQL escuche en todos los puertos.

Además, configuré una cuenta de usuario de MySQL para usarla de forma remota. Para más detalles verEl host 'xxx.xx.xxx.xxx' no puede conectarse a este servidor MySQL.

Respuesta4

Puede pasar que tu configuración esté en el directorio /etc/mysql/mysql.conf.d/mysqld.cnf, verifica si no es así.

información relacionada