MySQL
La base de datos relacional más desplegada del mundo.
MySQL es una base de datos SQL madura, rápida y probada en batalla que mueve WordPress, Joomla, Drupal, Magento y un sinfín de aplicaciones LAMP. Pier despliega la imagen Docker oficial con backups automáticos, gestión por base de datos y réplicas en un clic vía la imagen InnoDB Cluster.
Desplegar con Pier
- 1 Abre el panel de Pier y haz clic en Add service.
- 2 Elige MySQL en la lista de plantillas.
- 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
- 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.
¿Qué es MySQL?
MySQL es la base de datos relacional más desplegada de la historia. WordPress corre sobre ella. También aproximadamente la mitad del top millón de sitios web. Construida originalmente en 1995 en Suecia, adquirida por Sun en 2008 y luego Oracle en 2010, MySQL está ahora en su release 9.x con desarrollo continuo.
Para la mayoría de aplicaciones LAMP y PHP, MySQL es el camino de menor resistencia — cada host, cada framework, cada CMS lo espera. Donde PostgreSQL gana en features avanzadas, MySQL gana en ubicuidad y familiaridad operativa.
Cómo lo despliega Pier
Pier usa la imagen Docker oficial mysql, montando /var/lib/mysql como
volumen de datos. El default es latest (actualmente MySQL 9.x); las builds
8-oracle y 8.0 están disponibles para despliegues 8.x estrictos. Para
clústers, Pier cambia a la imagen bitnami/mysql que soporta replicación
primary-replica de fábrica (2 a 5 nodos en total).
Pier genera una contraseña root fuerte en la creación, expone 3306 internamente
y (opcionalmente) publica vía Traefik. Los backups corren
mysqldump --single-transaction en horario y pueden subirse a cualquier
store compatible con S3.
Cuándo NO usar MySQL
Para apps embebidas — SQLite es más simple. Para tipos complejos y conformidad con estándares SQL — PostgreSQL es más fuerte. Para cargas puramente key-value o cache — Redis. MySQL es la respuesta correcta cuando necesitas una base de datos relacional familiar y bien soportada, sin necesidades exóticas de esquema.
Características clave
Motor transaccional InnoDB
Locking a nivel de fila, MVCC, foreign keys, recuperación tras crash. Intercambiable en caliente con el motor legacy MyISAM para datasets de solo lectura.
Replicación lista de fábrica
Primary/replica vía binlog, semi-sync, group replication y multi-source. La imagen bitnami/mysql usada en modo clúster gestiona la topología automáticamente.
Window functions y CTEs (8.0+)
Window functions SQL-99 completas, CTEs recursivos, funciones JSON y EXPLAIN ANALYZE. La línea 8.x cerró la mayoría del gap con PostgreSQL.
Ecosistema y herramientas
Cada stack de hosting incluye cliente MySQL — phpMyAdmin, DBeaver, MySQL Workbench, JetBrains DataGrip, todas las herramientas de backup, todos los ORMs. Contratar es más fácil que con cualquier otra base de datos.
Soporte JSON
Tipo de columna JSON nativo con expresiones de path, indexado en columnas virtuales generadas, JSON_TABLE() para proyectar documentos en filas relacionales.
Performance Schema
Instrumentación integrada — slow query log, EXPLAIN ANALYZE, vistas sys schema, tablas performance_schema. Tunea sin profilers externos.
Casos de uso
Aplicaciones WordPress y PHP
El backend por defecto para WordPress, WooCommerce, Magento, Drupal, Joomla, MediaWiki, phpBB. Cada framework PHP usa MySQL por defecto.
Backend genérico de aplicaciones web
Rails, Django, Laravel, Symfony, Express — cada framework web tiene soporte de primera clase para MySQL.
SaaS multi-tenant
Una base de datos por tenant o una columna de clave de fila por tenant. Combinado con réplicas de lectura para offload analítico.
Origen BI para dashboards
Metabase, Superset, Grafana, Looker — cada herramienta BI tiene conectores nativos para MySQL.
Objetivo de migración legacy
Al portar desde sistemas Oracle/SQL Server más antiguos, MySQL es el aterrizaje OSS más compatible gracias al soporte maduro de ANSI/ISO SQL.
Ejemplos de código
CREATE TABLE posts (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
slug VARCHAR(200) NOT NULL UNIQUE,
title VARCHAR(255) NOT NULL,
body MEDIUMTEXT,
meta JSON,
created DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
KEY idx_created (created)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci; SELECT id, title,
JSON_EXTRACT(meta, '$.tags') AS tags,
JSON_UNQUOTE(JSON_EXTRACT(meta, '$.author')) AS author
FROM posts
WHERE JSON_CONTAINS(meta, '"featured"', '$.flags'); SELECT id, amount,
SUM(amount) OVER (
PARTITION BY customer_id
ORDER BY created
) AS running_total
FROM invoices; # Pier lo corre automáticamente en horario — también vale para uno único:
docker exec -i pier-mysql \
mysqldump -u root -p"$MYSQL_ROOT_PASSWORD" \
--single-transaction --routines --triggers appdb \
| gzip > appdb-$(date +%F).sql.gz Comparativa
| vs PostgreSQL | Postgres tiene un sistema de tipos más rico (JSONB, arrays, ranges), conformidad SQL más estricta e indexación más avanzada. MySQL es más rápido para cargas simples read-heavy estilo WordPress y tiene un ecosistema de hosting más amplio. |
| vs MariaDB | MariaDB es un fork comunitario de MySQL con compatibilidad binaria hasta 5.x y features divergentes después (clúster Galera, motor ColumnStore). Usa MariaDB si quieres un fork de gobernanza totalmente abierta; MySQL si quieres releases bendecidas por Oracle. |
| vs SQLite | SQLite es imbatible para apps embebidas mono-proceso. MySQL toma el relevo cuando necesitas escritores concurrentes, acceso por red, replicación o datos mayores que la RAM. |
| vs MySQL gestionado en cloud (RDS, Cloud SQL) | Autohospedar en Pier es 10–30× más barato para cargas pequeñas/medianas. Pierdes la UI gestionada pero ganas control, backups a tu propio S3 y flexibilidad de versión completa. |
Preguntas frecuentes
¿Qué versión de MySQL despliega Pier?
¿Puedo correr réplicas?
¿Cómo funcionan los backups automáticos?
¿Puerto y connection string por defecto?
¿Puedo conectar con phpMyAdmin o DBeaver?
¿Puedo migrar de MariaDB a MySQL o viceversa?
¿Cómo tuneo el InnoDB buffer pool?
Servicios relacionados
Desplegar en tu VPS
MySQL es una base de datos SQL madura, rápida y probada en batalla que mueve WordPress, Joomla, Drupal, Magento y un sinfín de aplicaciones LAMP. Pier despliega la imagen Docker oficial con backups automáticos, gestión por base de datos y réplicas en un clic vía la imagen InnoDB Cluster.
Desplegar este servicio →