Skip to content

Clientes de MySQL ​

El servidor MySQL no tiene ventanas ni botones: necesitas un cliente para hablar con él. En esta lección conocerás los cuatro clientes más usados (la terminal mysql, phpMyAdmin, MySQL Workbench y DBeaver), además de extensiones para VS Code, y sabrás cuál conviene en cada situación.

Concepto ​

Un cliente es como un control remoto para el servidor: todos mandan las mismas órdenes (SQL), pero unos tienen botones grandes y otros son más rápidos para quien ya se sabe los comandos.

ClienteTipoIdeal para
mysql (CLI)TerminalServidores, scripts, importar/exportar, rapidez
phpMyAdminWebHosting compartido, tareas rápidas visuales
MySQL WorkbenchEscritorio (oficial)Diseño de modelos E-R, administración
DBeaverEscritorio (multi-BD)Trabajar con MySQL, PostgreSQL, SQLite... en una sola app
VS Code + extensiónEditorConsultar sin salir de tu editor

El cliente de terminal mysql ​

Conectarse ​

bash
# Forma completa
mysql -h 127.0.0.1 -P 3306 -u tienda_app -p tienda

# -h host   -P puerto   -u usuario   -p pide contraseña   último argumento: base de datos

No escribas la contraseña en el comando

mysql -u root -pMiClave funciona, pero la contraseña queda en el historial de la terminal y visible en la lista de procesos. Usa -p solo y escríbela cuando te la pida, o un archivo de opciones (abajo).

Comandos útiles dentro del cliente ​

sql
SHOW DATABASES;                 -- bases de datos
USE tienda;                     -- cambiar de base de datos
SELECT DATABASE();              -- ¿en cuál estoy?
SHOW TABLES;                    -- tablas de la BD actual
DESCRIBE productos;             -- columnas de una tabla (o: DESC productos;)
SHOW CREATE TABLE productos\G   -- el CREATE completo, en formato vertical
SHOW PROCESSLIST;               -- conexiones y consultas en curso
SHOW WARNINGS;                  -- avisos de la última instrucción
STATUS;                         -- info de la conexión (versión, charset, usuario)

Comandos propios del cliente (no son SQL):

ComandoHace
\G al finalMuestra el resultado en vertical (ideal para filas con muchas columnas)
\cCancela la instrucción que estás escribiendo
SOURCE archivo.sql o \. archivo.sqlEjecuta un script
\! comandoEjecuta un comando del sistema (Linux/macOS)
pager less -SPagina resultados largos (Linux/macOS)
tee salida.txtGuarda todo lo que ves en un archivo
EXIT, QUIT o \qSalir

Ejemplo del formato vertical:

sql
SELECT * FROM clientes WHERE id = 1\G
txt
*************************** 1. row ***************************
            id: 1
        nombre: Ana López
         email: ana@correo.com
        ciudad: Ciudad de México
fecha_registro: 2024-01-15
1 row in set (0.00 sec)

Ejecutar sin entrar al cliente ​

bash
# Una consulta suelta
mysql -u root -p tienda -e "SELECT COUNT(*) FROM productos;"

# Ejecutar un script
mysql -u root -p tienda < 01-esquema.sql

# Exportar un resultado a TSV (separado por tabuladores)
mysql -u root -p tienda -B -e "SELECT id, nombre, precio FROM productos" > productos.tsv

Archivo de opciones: conectarte sin escribir todo ​

En Linux/macOS crea ~/.my.cnf (en Windows, %APPDATA%\MySQL\.my.cnf o C:\my.cnf):

ini
[client]
user=tienda_app
password=app_secreto
host=127.0.0.1
port=3306

[mysql]
database=tienda
prompt=\u@\h [\d]>\_
bash
chmod 600 ~/.my.cnf     # que solo tú puedas leerlo
mysql                   # ¡entra directo!

El prompt muestra usuario, host y base de datos actual (tienda_app@127.0.0.1 [tienda]>), lo que evita ejecutar algo en la base equivocada.

Para scripts de respaldo es mejor mysql_config_editor, que guarda las credenciales cifradas:

bash
mysql_config_editor set --login-path=respaldos --host=localhost --user=backup --password
mysql --login-path=respaldos

phpMyAdmin ​

Aplicación web escrita en PHP. Viene con XAMPP y con casi todos los hostings (cPanel → phpMyAdmin).

txt
┌──────────────────────────────────────────────────────────────┐
│ phpMyAdmin                                                   │
├────────────┬─────────────────────────────────────────────────┤
│ ▸ tienda   │ [Estructura] [SQL] [Buscar] [Exportar] [Importar]│
│   clientes │                                                 │
│   pedidos  │  Tabla       Acción                 Filas       │
│   productos│  clientes    Examinar Estructura…   5           │
│ ▸ mysql    │  productos   Examinar Estructura…   8           │
└────────────┴─────────────────────────────────────────────────┘

Lo que harás más seguido:

PestañaPara qué
ExaminarVer y editar filas como en una hoja de cálculo
EstructuraVer columnas, índices; agregar o modificar columnas
SQLEscribir y ejecutar consultas
ExportarDescargar un respaldo .sql (rápido o personalizado)
ImportarSubir un .sql (límite según upload_max_filesize de PHP)
OperacionesRenombrar, copiar tablas, cambiar collation
Cuentas de usuarioCrear usuarios y permisos (si tienes privilegios)

phpMyAdmin en producción

Un phpMyAdmin expuesto en tusitio.com/phpmyadmin es objetivo constante de ataques de fuerza bruta. En un VPS, no lo instales o protégelo (acceso solo por VPN o túnel SSH, autenticación HTTP adicional, URL no obvia). En hosting compartido, accede siempre desde cPanel.

MySQL Workbench ​

Herramienta oficial y gratuita de Oracle para Windows, macOS y Linux.

Funciones destacadas:

  • Editor SQL con autocompletado, varias pestañas y resultados editables.
  • Modelado (EER Diagrams): dibujas tablas y relaciones y genera el SQL (Forward Engineer), o genera el diagrama de una BD existente (Reverse Engineer). Perfecto para la lección de diseño E-R.
  • Administración: estado del servidor, usuarios, variables, logs.
  • Data Export/Import: respaldos con interfaz gráfica.
  • Visual Explain: el plan de EXPLAIN como diagrama.

Conexión nueva: clic en + junto a MySQL Connections → nombre, host 127.0.0.1, puerto 3306, usuario → Test Connection.

Safe Updates

Workbench trae activado el modo safe updates: bloquea UPDATE y DELETE sin WHERE sobre una clave. Es una protección excelente; si de verdad necesitas desactivarla temporalmente: SET SQL_SAFE_UPDATES = 0;.

Conectarse a un servidor remoto por túnel SSH (sin abrir el puerto 3306 a internet): en la conexión elige Standard TCP/IP over SSH, con el host y usuario SSH del servidor, y como MySQL Hostname 127.0.0.1.

DBeaver ​

Cliente universal y gratuito (Community Edition) que funciona con MySQL, MariaDB, PostgreSQL, SQLite, SQL Server, Oracle y más. Si trabajas con varios motores, es la mejor opción.

  • Descarga desde dbeaver.io → New Database Connection → MySQL. La primera vez descarga el driver automáticamente.
  • Editor SQL con autocompletado; Ctrl + Enter ejecuta la instrucción bajo el cursor.
  • Pestaña ER Diagram de cualquier base de datos.
  • Exportar resultados a CSV, Excel, JSON, SQL INSERT.
  • Comparar esquemas y migrar datos entre motores.
  • Túneles SSH en la pestaña SSH de la conexión.

Public Key Retrieval

Con MySQL 8 a veces DBeaver muestra Public Key Retrieval is not allowed. En Driver properties de la conexión pon allowPublicKeyRetrieval = true (solo para conexiones locales o por túnel) o usa SSL.

VS Code ​

Extensiones populares:

ExtensiónDestaca por
SQLTools + driver MySQLLigera, ejecutar consultas y ver resultados
Database Client (Weijan Chen)Explorador de tablas, edición, exportación
MySQL Shell for VS Code (Oracle)Integración oficial con MySQL Shell

Ventaja: tus scripts .sql viven en el repositorio del proyecto y los ejecutas sin cambiar de ventana.

¿Cuál uso y cuándo? ​

SituaciónCliente recomendado
Servidor Linux por SSHmysql CLI
Hosting compartidophpMyAdmin (desde cPanel)
Diseñar el modelo de una BD nuevaMySQL Workbench o DBeaver (diagramas)
Trabajo diario de desarrolloDBeaver, Workbench o VS Code
Importar un respaldo de 2 GBmysql CLI (phpMyAdmin tiene límites de subida y tiempo)
Explicarle datos a un clientephpMyAdmin o DBeaver (más visual)

Buena práctica

Aunque uses herramientas gráficas, aprende el cliente de terminal: en un servidor de producción o en una emergencia a las 2 a. m., será lo único disponible.

Ejercicios ​

  1. Conéctate con el cliente mysql a tu base tienda y muestra la estructura de pedidos en formato vertical.
  2. Sin entrar al cliente, exporta a un archivo clientes.tsv el nombre y email de todos los clientes.
  3. Crea un archivo de opciones con un prompt que muestre la base de datos actual.
  4. Instala DBeaver o Workbench, conéctate a tienda y genera el diagrama E-R.
Ver solución
sql
-- 1
USE tienda;
SHOW CREATE TABLE pedidos\G
bash
# 2
mysql -u root -p tienda -B -e "SELECT nombre, email FROM clientes" > clientes.tsv
ini
# 3  (~/.my.cnf)
[mysql]
prompt=\u@\h [\d]>\_
  1. En DBeaver: clic derecho sobre la base tienda → View Diagram. En Workbench: Database → Reverse Engineer... → selecciona tienda.

Resumen ​

  • El cliente mysql es esencial: -h, -P, -u, -p, \G, SOURCE y -e.
  • Guarda credenciales en ~/.my.cnf (con permisos 600) o con mysql_config_editor, nunca en el comando.
  • phpMyAdmin es práctico en hosting, pero no lo dejes expuesto en un VPS.
  • Workbench destaca en modelado; DBeaver es el cliente universal para varios motores.
  • Para archivos grandes y servidores remotos, la terminal (y los túneles SSH) son la opción.

Academia Web — aprende, copia y construye.