MySQL es uno de los sistemas de gestión de bases de datos relacionales (RDBMS) más utilizados en la actualidad. Es una robusta plataforma de bases de datos que permite crear y gestionar bases de datos escalables, principalmente mediante un lenguaje de consulta estructurado (SQL).

El servidor MySQL es el entorno en el que residen las bases de datos, y donde se accede a ellas. Como administrador del servidor, a menudo necesitarás recuperar detalles sobre este entorno — listar las bases de datos que viven en el servidor, mostrar las tablas de una base de datos concreta, ver los roles y privilegios de los usuarios, acceder a las restricciones, etc.

Este artículo te explicará los entresijos de cómo listar las bases de datos de MySQL a través del símbolo del sistema.

Requisitos Previos para Listar las Bases de Datos MySQL

Debes tener el servidor MySQL funcionando en tu máquina local para poder empezar. Si no tienes MySQL, hay varias formas de instalarlo:

  • Instala WAMPServer, XAMPP, MAMP o cualquier otro stack de distribución de software que incluya MySQL.
  • Descarga y ejecuta el instalador de MySQL directamente desde su sitio web oficial, siguiendo el proceso de instalación para configurar e instalar el servidor MySQL y otras herramientas.

Para ejecutar cómodamente los comandos de MySQL mediante la línea de comandos, tendrás que añadir la ruta del ejecutable de MySQL al entorno de tu sistema. Si has instalado MySQL utilizando la segunda opción, este paso es innecesario, así que puedes saltarte la siguiente sección.

Añadir la Ruta de MySQL al Entorno de Variables de tu Sistema

Esta sección te guía para añadir la ruta del ejecutable de MySQL al entorno de variables de tu sistema si estás ejecutando XAMPP o WAMP en un ordenador con Windows.

En primer lugar, inicia tu explorador de archivos de Windows y navega hasta Mi PC. Haz clic en la unidad donde has instalado el paquete WAMP o XAMPP (C:).

Si estás ejecutando XAMPP, navega hasta xampp > mysql > bin y copia la ruta completa a la carpeta bin. En el caso de WAMP, navega por {tu-versión-wamp} > bin > mysql > {tu-versión-mysql} > bin hasta su ruta completa.

La ruta completa para acceder a la CLI de MySQL.
La ruta completa de la carpeta bin.

Haz clic en el menú Inicio y busca «ruta» Haz clic en Editar la variable de entorno del sistema.

A continuación, haz clic en Variables de entorno en Inicio y recuperación, selecciona la variable PATH y haz clic en Editar.

A continuación, haz clic en Nuevo y pega la ruta completa de tu ejecutable de MySQL (que has copiado antes).

Editando variables de entorno.
Editando variables de entorno.

A continuación, guarda los cambios haciendo clic en Aceptar.

Ahora que se ha añadido la ruta, puedes ejecutar los comandos de MySQL en el terminal.

Iniciar Sesión en MySQL

Para listar las bases de datos de MySQL, el usuario debe estar autorizado a acceder a todas las bases de datos, o debes establecer un privilegio global SHOW DATABASES que conceda acceso a todos los usuarios.

Asegúrate de que tu servidor MySQL se está ejecutando antes de iniciar la sesión a través del símbolo del sistema:

mysql -u  -p

NOTA: sustituye  por tu nombre de usuario. El nombre de usuario por defecto de MySQL es root, y la contraseña está vacía (no hay contraseña por defecto).

Entrando en MySQL a través de la terminal.
Entrando en MySQL.

Mostrar las Bases de Datos dentro del Servidor MySQL

Ahora que has iniciado la sesión, puedes listar las bases de datos de MySQL presentes en el servidor ejecutando el comando SHOW DATABASES:

SHOW DATABASES;

A cambio, obtendrás todas las bases de datos existentes en el almacenamiento:

Mostrando las bases de datos MySQL.
Una lista de las bases de datos que hay en el almacenamiento.

De las seis bases de datos devueltas, information_schema y performance_schema son las bases de datos por defecto que se generan automáticamente al instalar MySQL.

La base de datos information_schema es una base de datos no modificable que almacena toda la información relacionada con las bases de datos y otros objetos (vistas, privilegios de usuario, tablas, restricciones, etc.) almacenados en el servidor MySQL.

Filtrar los Resultados de la Salida de la Base de Datos

Anteriormente, se devolvían todas las bases de datos del servidor MySQ con SHOW DATABASES, pero a menudo tienes que filtrar la salida de la base de datos, principalmente cuando hay muchas bases de datos en el servidor.

La sentencia LIKE filtra el resultado de SHOW DATABASE en función de un patrón especificado. Esta es la sintaxis general:

SHOW DATABASES LIKE '';

Debe ser una cadena que represente el patrón que quieres comparar. La cadena debe terminar con el símbolo de porcentaje, %, que denota uno o más caracteres.

Por ejemplo, si quieres mostrar sólo las bases de datos cuyos nombres empiezan por la letra w, lo harás ejecutando lo siguiente:

SHOW DATABASES LIKE 'w%';

Este es el resultado filtrado:

Listado filtrado de bases de datos mysql
La respuesta filtrada de la base de datos al utilizar ‘w%’.

Uso del Esquema de Información para Consultar los Metadatos de la Tabla

Antes has visto cómo la base de datos information_schema almacena toda la información relacionada con las bases de datos, las tablas y otros objetos del entorno del servidor MySQL.

La base de datos information_schema utiliza la tabla de esquemas para almacenar información sobre todas las bases de datos. Para filtrar las bases de datos, puedes realizar una búsqueda compleja para consultar la tabla de esquemas para bases de datos específicas.

Por ejemplo, si quieres bases de datos cuyos nombres empiecen por «samp» o «word», puedes combinar otras cláusulas para hacer una consulta compleja:

SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

Este es el resultado:

Utilizando el comando "SELECT schema_name FROM" de MySQL.
Los resultados de la consulta compleja.

Además, tienes la tabla tables de la base de datos information_schema, que contiene información sobre todas las tablas. Del mismo modo, puedes realizar una consulta para recuperar sólo las tablas que coincidan con un patrón especificado.

Por ejemplo, la siguiente consulta devuelve la información del esquema de sólo las tablas de WordPress, es decir, sólo las tablas cuyos nombres empiezan por «wp_»:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Este es el resultado:

Listado de la tabla de la base de datos wp_tables MySQL.
Los resultados de la información del esquema de sólo las tablas de WordPress.

Otras tablas que se encuentran en information_schema son columns, constraints, table_constraints, check_constraints y referential_constraints.

Problemas Comunes y Buenas Prácticas

Una de las causas más comunes de errores al ejecutar el SQL es no utilizar el punto y coma al final de las sentencias.

Otra es utilizar una sintaxis SQL no válida o un nombre de tabla/columna mal escrito. Para evitarlo, comprueba el nombre de la tabla o columna para asegurarte de que está bien escrito. Asegúrate también de comprobar la sintaxis.

Aquí tienes otras buenas prácticas que debes tener en cuenta.

Utiliza Mayúsculas para las Palabras Clave SQL

Cuando escribas código SQL, utiliza siempre mayúsculas para las palabras clave SQL y minúsculas para los nombres de tablas y columnas. Esto hace que tu código sea más legible y menos susceptible de cometer errores.

Así, en lugar de esto:

select * from information_schema.tables where table_name like 'wp_%';

Haz esto:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Evita Usar SELECT *

Evita utilizar SELECT * en tus consultas SQL. Tu consulta es poco clara porque no siempre puedes saber lo que va a devolver. En su lugar, especifica las columnas que quieres seleccionar de la tabla.

Así que en lugar de esto:

SELECT * EXCEPT(phone) FROM users.profile

Haz esto:

SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

Sangría en el Código

Por último, un consejo más para facilitar la búsqueda de errores es aplicar una sangría al código. ¡Lo hace más legible!

Gestores de Bases de Datos

También puedes optar por gestionar tus bases de datos sin escribir SQL mediante el uso de un gestor de bases de datos. Esto permite a los usuarios acceder a las funciones de gestión de la base de datos sin necesidad de escribir consultas SQL. Este software se conecta a un servidor MySQL y proporciona una interfaz de usuario para exponer las funciones de la base de datos. Una vez conectado, la interfaz de usuario mostrará todas las bases de datos del servidor. El aspecto y la sensación varían según las herramientas de gestión, pero el proceso es similar.

Gestor de bases de datos de DevKinsta.
Gestor de bases de datos de DevKinsta.

Hay varias herramientas disponibles para elegir, como phpMyAdmin y Adminer, ambas accesibles a través de DevKinsta. La herramienta de gestión por defecto para DevKinsta es Adminer, ya que es ligera, fácil y rápida, pero se puede acceder a phpMyAdmin con facilidad.

Resumen

Como administrador de un servidor, necesitas ser capaz de obtener detalles sobre las bases de datos de tu servidor MySQL de forma eficiente y precisa. La capacidad de ver qué bases de datos hay en el servidor, ver tablas específicas y la información que contienen, y acceder a la información sobre los roles y privilegios de los usuarios son tareas cruciales. Afortunadamente, el uso de SQL desde tu línea de comandos puede hacer que todo esto sea muy fácil.

Cuando la gestión de tu base de datos necesite ir más allá de la consulta de tablas, Kinsta puede ayudarte. ¡Obtén más información sobre nuestras opciones de alojamiento de bases de datos escalables hoy mismo!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.