Teléfono y Whatsapp: 675 18 68 80

Conexión a MySQL server desde cualquier host

Por defecto, ya sea en una instalación limpia de mysql server o bien en algun hosting compartido, éste servidor de bases de datos relaccionales, viene ‘capado’ para que sólo pueda ser usado desde el propio host donde fue instalado.

Me ha llevado varias horas arreglarlo, pero por fin, con este sencillo tip, se pueden permitir conexiones desde cualquier otra IP:

sudo nano /etc/mysql/my.cnf
#localizamos la linea bind-address y ponemos la ip 0.0.0.0
bind-adress = 0.0.0.0
#reiniciamos el servidor mysql
sudo /etc/init.d/mysql restart

Ahora tenemos que dar permiso en la base de datos para poder hacer las consultas, para ello nos conectamos mediante el comando mysql a la base de datos desde el mismo servidor donde está instalada:

mysql -u root -p

y nos pedirá la contraseña para acceder.

Ahora creamos un usuario, y su con su contraseña:

CREATE USER 'walo'@'%' IDENTIFIED BY '1234';

Le otorgamos privilegios a todo en lodos los dominios/ip’s (@):

GRANT ALL PRIVILEGES ON *.* TO walo@'%' IDENTIFIED BY '1234';

Si queremos dárselo en localhost (solo para otro usuario que no sea root:

GRANT ALL PRIVILEGES ON *.* TO walo@localhost IDENTIFIED BY '1234';

Actualizamos todos los campos host con % para que deje conectarse desde cualquiera, para mi usuario:

USE mysql;
UPDATE db SET host='%' WHERE user='walo';

Creamos la base de datos prueba para trabajar con ella:

CREATE DATABASE prueba;
SHOW DATABASES;

Y ya podremos conectarnos remotamente desde otro ordenador al servidor mysql remotamente:

mysql -h IPDELSERVIDORMYSQL -u root -p

Ahora recomiendo trabajar con MySQL workbench, un complejo programa multiplataforma para monitorizar bases de datos remotas, que además viene con editor de consultas y permite crear diagramas E/R.

Si instaláis MySQL en una raspberry pi con archlinux, hace falta que creéis una partición swap desde consola, ya que de lo contrario, la raspberry se ahoga y no puede hacer consultas: https://wiki.archlinux.org/index.php/Swap#Swap_file_creation

Un saludo.

  • Kerly Esthefanny

    me parece muy interesante .. pero para ingresar este código es necesario acceder a la consola de mysql?

    • walo

      Hola Kerly,

      antes de la sentencia CREATE USER no hay que abrir la consola de MySQL, pero después pero a partir del CREATE si, es dentro de la consola.

      Un saludo.

  • Niko Sturm

    Era justo lo que necesitaba! Explicación bien detallada y precisa.
    Muchas gracias!