conexiones remotas a mysql por shell en linux

viernes, 18 de abril de 2008
Publicado por Ivan

Si, debo confesarlo: soy un hijo de las interfaces gráficas. No porque lo haya escogido, sino porque simplemente era muy pequeño para valorar las consolas, y muy ingenuo para creer que servirían para algo. Hoy, sigo creyendo que es mejor tener una interfaz gráfica, pero reconozco el poder de las consolas. 

En este momento estoy supervisando un servidor con centOS, y la verdad es que me ha tocado aprender a la mala cómo manejar un servidor con pura consola. Ahí apt ha sido el salvador de varias situaciones, pero decidí enfrentar mis temores, y resolver todo con pura consola, teniendo en mente en algún momento ofrecer soporte gráfico para varias funciones. 
Y bueno!!, necesita acceder a una base de datos mysql en este servidor pero desde fuera, para poder usar en particular un programa muy bueno y que lo recomiendo a todos llamado Sql Maestro para Mysql, que es genial para todo tipo de tareas. También hay versiones para oracle, postgre, sql server, firebird, incluso una llamada anysql, gratuita y que permite conectarse con cualquier base de datos siempre que tengas configurado un conector odbc en tu sistema.
Y el tema es que no me podía conectar para generar el perfil en este programa, por lo que empecé a averiguar cómo hacerlo. Leí sobre el archivo /etc/my.cnf, pero en mi caso no tenía información sobre los hosts. Luego pensé en los archivos /etc/hosts y /etc/hosts.allow, pero ninguno me solucionó el problema. Y como siempre, después de googlear un buen rato, di con la respuesta.
Obviando la configuración del firewall, lo único que hay que hacer para conectarse desde fuera es asignar permisos a un usuario indicando el host desde el que se conectará. Esto es:

grant all privileges on BASEDEDATOS.TABLA to USUARIO@HOST;

En mi caso, no existía yo como usuario en la base de datos, por lo que quería agregarme, setear mi contraseña, definir las bases de datos a las que me podía conectar y desd ele lugar que podía hacerlo, por lo que en mi caso la cosa fué:

grant all privileges on *.* to 'ivan'@'%' identified by 'password';

Evidentemente no puse la password. El % es para indicar que me puedo conectar desde cualquier host. Y si bien esto es bastante peligroso, espero poder arreglarlo luego con una cuenta dyndns que voy a empezar a sacarle el jugo luego. Y eso!!, con esto ya se pueden conectar desde fuera, siempre que el firewall no bloquee el puerto 3306.

2 comentarios:

kto dijo...

cosola rulez!!!
me parece genial ke plasmes estos datitos!
salu2

Ivan dijo...

no toy de acuerdo