MyCLI: Cliente de terminal para MySQL con autocompletado

Hoy introduciremos a mycli, una excelente interfaz de línea de comandos para adminsitrar, de manera sencilla, nuestras bases de datos MySQL utilizando la terminal.


¿Administras bases de datos MySQL o MariaDB? Entonces este artículo te puede interesar.

Como a muchos, a mi no me gusta utilizar PHPMyAdmin en servidores de producción… tener una pata http accediendo directamente a los datos de mis aplicaciones no me resulta, digamos, atractivo (opinión personal).mycli linux mysql mariadb cli Por otro lado, suelo administrar mis bases de datos remotas mediante MySQL Workbench, pero el problema, es que a esta aplicación le encuentro un par de defectos. Por un lado, a veces crashea sin motivo aparente, y por otro, se “come” una buena porción de la memoria RAM de mi ordenador.

Entonces, nos queda una opción: el clásico cliente de línea de comandos para administrar bases de datos: mysql.

Ahora, si no somos expertos en comandos de sql, o el trabajo que necesitamos realizar sobre la DB va mas allá de probar unos select’s, el cliente de línea de comandos puede resultarnos poco amigable.

MyCLI: la solución

Aquí les presento otra solución interesante para administrar bases de datos por medio de la línea de comandos.

Podemos conectarnos a nuestro servidor de base de datos mediante SSL, y correr un cliente como MyCLI y tener, en una interfaz amigable, con coloreo de sintaxis, y autocompletado de comandos (algo muy muy útil) un excelente acceso para administrar nuestras bases de datos MySQL o María DB.

MyCLI es un cliente mysql/mariadb escrito en Python, y muy simple de instalar y utilizar.

Instalación

En ArchLinux, por ejemplo, podemos instalarlo mediante los repos AUR de la siguiente forma:

yaourt -S mycli

En Debian podemos hacerlo desde los repositorios oficiales:

sudo apt install mycli

Y, por supuesto, es python, y está disponible en los repositorios de PIP para cualquier distribución que cuente con un cliente pip:

sudo pip install -U mycli

Uso básico de MyCLI

Entre las características más destacadas de este genial cliente de línea de comandos para MySQL/MariaDB, podemos mencionar:

  • Autocompletado inteligente de línea de comandos. En la medida en que vamos escribiendo veremos un popup con las diferentes opciones para autocompletado, y mediante las teclas de cursor podremos seleccionar la que necesitemos. El menú se despliega con la tecla tabulador en cualquier parte de la sentencia.
  • Resaltado de sintaxis. en la medida en que escribimos nuestras queries, veremos que las palabras reservadas tendrán un color, mientras que los datos y constantes otro, lo que permite identificar y analizar de forma rápida y sencilla, las consultas que realicemos a la DB.
  • El archivo ~/.mycli-history contiene un historial de todos los comandos que fuimos ejecutando en MyCLI, así que ya no perderemos más esas complejas queries a la base de datos! 🙂
  • El archivo de configuración por defecto es ~/.myclirc, y en él se pueden configurar muchos de los aspectos del cliente… colores de resaltado de sintaxis, “verbosidad” de los logs, soporte multilínea para consultas complejas, asociación de teclas, etc.
  • Soporte extendido para conexiones cifradas sobre SSL/TLS.
  • Y no podía ser menos, es opensource! Podemos encontrar su código fuente en aquí.

mycli linux mysql mariadb cli

Ejemplos de uso

Podemos lanzar el comando de varias maneras para conectarnos a nuestra base de datos:

  • Conectándonos a la base de datos local con nuestro usuario de login:
    mycli mi_basededatos
  • Conectándonos a la base de datos remota con username y password:
    mycli -u usuario -h host_servidor basededatos
  • Idem al anterior, especificando protocolo y puerto de comunicación:
    mycli mysql://usuaario@host_servidor:3306/basededatos

Con el comando “mycli –help” tendremos una ayuda detallada de las opciones disponibles, entre las que se encuentran las arriba ejemplificadas. Lo transcribo aquí para que lo tengan de referencia:

Como se ve, hay opciones para especificar usuario, password, base de datos, consulta o query en particular, tabla, archivo de log, formato del prompt, y datos de conexión SSL/TLS si nuestro servidor sólo acepta conexiones seguras.

Espero esta herramienta les resulta interesante y útil!

Cualquier alternativa, sugerencia o consulta, quedo a disposición en la plataforma de comentarios del blog, espero leerlos!

¡Hasta la próxima entrega!


Próximamente publicaremos esta entrada en video en nuestro canal de youtube, no dejen de suscribirse para estar al tanto de las novedades, y de compartir a quien pueda servirle! ¡GRACIAS!