El cliente de línea de comandos mysql es la herramienta más directa para interactuar con MySQL. Permite ejecutar consultas SQL, importar ficheros, ver el estado del servidor y administrar usuarios. Aunque existen clientes gráficos como MySQL Workbench o DBeaver, la CLI es indispensable en servidores sin entorno gráfico.
En este capítulo cubrimos cómo conectar, los comandos de administración más usados (SHOW, USE, DESCRIBE), cómo ejecutar ficheros SQL y los atajos de teclado útiles del cliente.
Conectar al servidor
# Conectar como root en localhost (te pedirá contraseña) mysql -u root -p # Especificar host, puerto y base de datos en un solo comando mysql -u usuario -p -h 127.0.0.1 -P 3306 nombre_base # Ejecutar una consulta directamente (sin entrar en modo interactivo) mysql -u root -p'contraseña' -e "SELECT VERSION()" # Conectar y ejecutar un script SQL mysql -u root -p nombre_base < script.sql
Comandos de administración básicos
-- Ver todas las bases de datos SHOW DATABASES; -- Seleccionar una base de datos para trabajar con ella USE nombre_base; -- Ver la base de datos activa SELECT DATABASE(); -- Ver todas las tablas de la base de datos activa SHOW TABLES; -- Ver la estructura de una tabla DESCRIBE clientes; DESC clientes; -- abreviatura SHOW COLUMNS FROM clientes; -- equivalente -- Ver la instrucción CREATE TABLE original (con índices y restricciones) SHOW CREATE TABLE clientes\G -- Ver el estado de las tablas (tamaño, motor, número de filas) SHOW TABLE STATUS\G
SHOW para obtener información del servidor
-- Variables de configuración del servidor SHOW VARIABLES; -- todas (muchas) SHOW VARIABLES LIKE 'max_connections'; -- filtrar por patrón SHOW VARIABLES LIKE 'innodb%'; -- todas las variables InnoDB -- Variables de estado (métricas en tiempo real) SHOW STATUS; SHOW STATUS LIKE 'Threads_connected'; -- conexiones activas SHOW STATUS LIKE 'Queries'; -- consultas ejecutadas -- Procesos activos (útil para detectar consultas bloqueadas) SHOW PROCESSLIST; -- Motores de almacenamiento disponibles SHOW ENGINES; -- Charset y collations SHOW CHARACTER SET; SHOW COLLATION LIKE 'utf8mb4%';
Comandos del cliente (no son SQL)
# Dentro del cliente mysql: help # o \h — muestra la ayuda exit # o \q o quit — salir status # o \s — información de la conexión clear # o \c — cancelar la instrucción actual (sin ejecutarla) # Cambiar el delimitador (útil para procedimientos almacenados) delimiter // # Ejecutar un fichero desde dentro del cliente source /ruta/al/script.sql \. /ruta/al/script.sql # equivalente
Formatear la salida
-- \G al final de la consulta: muestra el resultado en formato vertical -- (más legible para filas con muchas columnas) SELECT * FROM clientes LIMIT 1\G -- Exportar resultado a CSV directamente desde MySQL SELECT nombre, email, ciudad FROM clientes INTO OUTFILE '/tmp/clientes.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; -- (requiere FILE privilege y que /tmp no esté en secure_file_priv)
