una remoto remotas remota puerto permitir para otra habilitar desde datos configurar conexiones conexion conectarse acceso acceder abrir mysql ubuntu remoting

remoto - Conexiones remotas Mysql Ubuntu



habilitar acceso remoto mariadb (4)

Por alguna razón, no he podido conectarme de forma remota a mi servidor MySQL. Lo intenté todo y sigo recibiendo errores.

root@server1:/home/administrator# mysql -u monty -p -h www.ganganadores.cl Enter password: ERROR 1045 (28000): Access denied for user ''monty''@''server1.ganganadores.cl'' (using password: YES)

Ahora, he intentado correr

`GRANT ALL ON *.* to monty@localhost IDENTIFIED BY ''XXXXX''; GRANT ALL ON *.* to monty@''%'' IDENTIFIED BY ''XXXXXX'';`

y todavía nada! ¿Qué estoy haciendo mal?

EDITAR: my.cnf ha comentado el bind ip.


Agrega algunos puntos encima de la excelente publicación de Apesa:

1) Puede usar el siguiente comando para verificar que la dirección IP del servidor mysql esté escuchando

netstat -nlt | grep 3306 sample result: tcp 0 0 xxx.xxx.xxx.xxx:3306 0.0.0.0:* LISTEN

2) Use FLUSH PRIVILEGES para forzar que se carguen las tablas de permisos si por algún motivo los cambios no entran en vigencia inmediatamente.

GRANT ALL ON *.* TO ''user''@''localhost'' IDENTIFIED BY ''passwd'' WITH GRANT OPTION; GRANT ALL ON *.* TO ''user''@''%'' IDENTIFIED BY ''passwd'' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT;

3) Si el firewall de netfilter está habilitado ( sudo ufw enable ) en la máquina del servidor mysql, haga lo siguiente para abrir el puerto 3306 para acceso remoto:

sudo ufw allow 3306

verificar el estado usando

sudo ufw status

4) Una vez que se establece una conexión remota, se puede verificar en la máquina del cliente o del servidor usando comandos

netstat -an | grep 3306 netstat -an | grep -i established


MySQL solo escucha localhost, si queremos habilitar el acceso remoto a él, entonces necesitamos hacer algunos cambios en el archivo my.cnf:

sudo nano /etc/mysql/my.cnf

Necesitamos comentar las líneas bind-address y skip-external-locking:

#bind-address = 127.0.0.1 # skip-external-locking

Después de realizar estos cambios, debemos reiniciar el servicio mysql:

sudo service mysql restart


Para exponer MySQL a cualquier cosa que no sea localhost, tendrá que tener la siguiente línea

Para mysql versión 5.6 y abajo

sin comentar en /etc/mysql/my.cnf y asignado a la dirección IP de su computadora y no al loopback

Para mysql versión 5.7 y superior

descomentada en /etc/mysql/mysql.conf.d/mysqld.cnf y asignada a la dirección IP de su computadora y no al loopback

#Replace xxx with your IP Address bind-address = xxx.xxx.xxx.xxx

O agregue una bind-address = 0.0.0.0 si no desea especificar la IP

Luego detenga y reinicie MySQL con la nueva entrada my.cnf. Una vez que se ejecuta, vaya a la terminal e ingrese el siguiente comando.

lsof -i -P | grep :3306

Eso debería volver algo como esto con tu IP real en el xxx

mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)

Si la declaración anterior vuelve correctamente, entonces podrá aceptar usuarios remotos. Sin embargo, para que un usuario remoto se conecte con los privilegios correctos, necesita tener ese usuario creado tanto en el host local como en ''%'' como en.

CREATE USER ''myuser''@''localhost'' IDENTIFIED BY ''mypass''; CREATE USER ''myuser''@''%'' IDENTIFIED BY ''mypass'';

entonces,

GRANT ALL ON *.* TO ''myuser''@''localhost''; GRANT ALL ON *.* TO ''myuser''@''%'';

y finalmente,

FLUSH PRIVILEGES; EXIT;

Si no tiene el mismo usuario creado anteriormente, cuando inicia sesión localmente, puede heredar privilegios de localhost base y tener problemas de acceso. Si desea restringir el acceso que tiene myuser, deberá leer la sintaxis de la sentencia GRANT HERE Si supera todo esto y todavía tiene problemas, publique algunos resultados de errores adicionales y las líneas correspondientes de my.cnf.

NOTA: Si lsof no devuelve o no se encuentra, puede instalarlo HERE según su distribución de Linux. No necesita lsof para hacer que las cosas funcionen, pero es extremadamente útil cuando las cosas no funcionan como se esperaba.


Si prueba en Windows, no olvide abrir el puerto 3306.