Servidor MySQL no accesible desde máquina remota

14

He instalado el servidor MySQL en mi servidor Ubuntu local (11.10). No puedo conectarme al servidor desde una máquina remota.

Cuando intenté: - nmap localhost , muestra lo siguiente

SERVICIO DEL ESTADO DEL PUERTO
22 / tcp abrir ssh
80 / tcp http abierto
139 / tcp abierto netbios-ssn
445 / tcp abierto microsoft-ds
631 / tcp abierto ipp
3306 / tcp abrir mysql

Significa que 3306, el puerto MySQL está abierto, ¿verdad? Pero cuando lo intenté nmap 192.168.0.50, que es la IP del servidor, obtengo lo siguiente:

SERVICIO DEL ESTADO DEL PUERTO
22 / tcp abrir ssh
80 / tcp http abierto
139 / tcp abierto netbios-ssn
445 / tcp abierto microsoft-ds

¿Significa esto que el puerto no está abierto cuando se accede mediante IP? Si es así, ¿cómo abro el puerto?

Intenté el siguiente código, pero parece que no funcionó.

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

¿Que esta mal aquí?

Chispeante
fuente

Respuestas:

22

Su servicio MySQL está destinado a servir solo localhost (enlace de interfaz). Este es el valor predeterminado por razones de seguridad. Si realmente necesita acceder directamente desde otros hosts, hay una buena forma de habilitar el acceso remoto a MySQL en Ubuntu que puede seguir:

  1. como root, abra su /etc/mysql/my.cnfo /etc/mysql/mysql.conf.d/mysqld.cnf con su editor favorito, ya que en diferentes sistemas se encuentra que es diferente.
  2. busque la [mysqld]sección y allí la bind-addresspalabra clave. Por lo general, esto se establece en 127.0.0.1: cámbielo para que coincida con su dirección IP "normal"
  3. guarde el archivo y vuelva a cargar el servicio (por ejemplo, usando service mysql restart)

Recuerde que debe permitir que sus usuarios remotos accedan a su (s) base (s) de datos desde el remoto, configurando las CONCESIONES apropiadas, por ejemplo

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

Tenga en cuenta el @'%', que significa "desde cualquier host".

Izzy
fuente
Me alegro de leer, ¡y de nada!
Izzy
el enlace está roto :(
dino
2
@dino Ya no. Lo arreglé y también incluí un extracto, por lo que si muere nuevamente, los pasos necesarios todavía están aquí. Lo malo es que no lo hice desde el principio, pero como puede ver en la marca de tiempo, esa fue una de mis primeras respuestas. Todos aprendemos :)
Izzy
2
El campo de dirección de enlace estaba debajo /etc/mysql/mysql.conf.d/mysqld.cnfpara mi sistema.
Eric G
@EricG Gracias por el puntero. Mi respuesta fue hace 5 años, por lo que las configuraciones han cambiado un poco (y probablemente se han vuelto más modulares).
Izzy