Skip to main content
[ PIER ]

MariaDB

El fork comunitario de MySQL — gobernanza abierta, drop-in compatible.

Database Listo para clúster #sql#relational#mysql-compatible

MariaDB es un fork comunitario, completamente open-source, de MySQL creado por los desarrolladores originales de MySQL tras la adquisición por Oracle. Es binario-compatible con MySQL 5.x y se mantiene drop-in para la mayoría de cargas MySQL 8.0, añadiendo motores de almacenamiento (ColumnStore, Aria), clúster Galera y una garantía OSS más fuerte bajo la MariaDB Foundation.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige MariaDB en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es MariaDB?

MariaDB empezó en 2009 como fork comunitario de MySQL liderado por Monty Widenius — el autor original de MySQL — y los desarrolladores core de MySQL, inmediatamente tras la adquisición por Oracle. El objetivo: mantener MySQL totalmente open-source bajo una fundación independiente, libre de cambios de licencia corporativos.

A lo largo de 15+ años ha divergido lo bastante para tener su propia personalidad (Galera multi-master, motores Aria + ColumnStore, JSON paths) mientras se mantiene MySQL-compatible a nivel de cable y protocolo. Wikipedia, Google, Mozilla, RedHat, SUSE, Booking.com y muchas distros enterprise empaquetan MariaDB como la “compatible con MySQL” por defecto.

Cómo lo despliega Pier

Pier usa la imagen Docker oficial mariadb, montando /var/lib/mysql como volumen de datos. La versión por defecto es latest (actualmente MariaDB 11.x); 10.11 (LTS) y 10.6 están disponibles. El modo clúster (2–5 nodos) usa la imagen bitnami/mariadb con replicación Galera.

Pier autogenera una contraseña root fuerte vía MARIADB_ROOT_PASSWORD y expone 3306 internamente. Los backups corren mariadb-dump --single-transaction en horario.

Cuándo NO usar MariaDB

Para apps embebidas — SQLite. Para sistema de tipos Postgres-strong y conformidad SQL estándar — PostgreSQL. Para cachés puros — Redis. Para analítica pura a escala de petabytes — ClickHouse. MariaDB gana cuando quieres una base de datos MySQL-compatible familiar con garantías OSS más fuertes y Galera disponible.

Características clave

Compatible con MySQL

Mismo protocolo de cable, mismo dialecto SQL, mismas herramientas cliente. La mayoría de ORMs, frameworks y utilidades de dump funcionan sin cambios. Ruta fácil de migración desde MySQL.

Galera Cluster (multi-master)

Replicación multi-master síncrona vía Galera. Escribe en cualquier nodo; todos los nodos permanecen consistentes. Integrado en MariaDB; en MySQL necesita un paquete aparte.

Motores Aria y ColumnStore

Aria — reemplazo crash-safe de MyISAM. ColumnStore — motor columnar para analítica en la misma base de datos, sin necesidad de un sistema OLAP aparte.

Window functions, CTEs, JSON

Las mismas features modernas de SQL que MySQL 8 — CTEs recursivos, window functions, JSON paths, columnas generadas, secuencias.

Gobernanza abierta

Desarrollado por la MariaDB Foundation (sin ánimo de lucro), no por Oracle. Licencia GPLv2; clientes LGPL. Sin riesgo de cambios a licencia source-available.

Probado en producción a gran escala

Wikipedia, Google, Mozilla, Booking.com, ServiceNow — muchos despliegues anteriores de MySQL migraron a MariaDB y se quedaron.

Casos de uso

Reemplazo drop-in para MySQL

Migra desde MySQL cambiando una imagen Docker — la mayoría de apps no se entera. Obtienes motores de almacenamiento extra y Galera de regalo.

Clúster multi-master para alta disponibilidad

Galera Cluster da escrituras multi-master síncronas sin single point of failure — escribe en cualquier nodo, lee desde cualquier nodo.

OLTP + OLAP en un motor

El motor ColumnStore añade tablas analíticas columnares a la misma MariaDB. Corre dashboards en las tablas analíticas, OLTP en InnoDB.

Backend de aplicaciones PHP

Wikipedia migró a MariaDB hace años; muchos hosts de WordPress ahora usan MariaDB por defecto. Totalmente compatible con extensiones PHP MySQL y WordPress.

Entornos de compliance OSS estricto

Gobierno, sector público UE, industrias reguladas que requieren gobernanza abierta — la MariaDB Foundation proporciona certeza legal que MySQL/Oracle no puede.

Ejemplos de código

Crear tabla InnoDB (DDL compatible con MySQL) sql
CREATE TABLE customers (
  id     INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  email  VARCHAR(255) NOT NULL UNIQUE,
  plan   ENUM('free', 'pro', 'team') DEFAULT 'free',
  meta   JSON,
  created DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CTE recursivo (traversal de organigrama) sql
WITH RECURSIVE org_tree AS (
  SELECT id, name, manager_id, 1 AS depth
  FROM employees WHERE manager_id IS NULL
  UNION ALL
  SELECT e.id, e.name, e.manager_id, t.depth + 1
  FROM employees e JOIN org_tree t ON e.manager_id = t.id
)
SELECT * FROM org_tree ORDER BY depth, name;
Window function (rank dentro del grupo) sql
SELECT product_id, region, sales,
       RANK() OVER (PARTITION BY region ORDER BY sales DESC) AS rank
FROM sales_by_region;
Backup con mariadb-dump bash
docker exec -i pier-mariadb \
  mariadb-dump -u root -p"$MARIADB_ROOT_PASSWORD" \
               --single-transaction --routines --triggers appdb \
  | gzip > appdb-$(date +%F).sql.gz

Comparativa

vs MySQL Hasta 5.x son binarios-compatibles. MariaDB 10+ vs MySQL 8+ han divergido — MariaDB añade Galera y más motores; MySQL añadió algunas mejoras de optimizer. Ambas son excelentes.
vs PostgreSQL Postgres tiene un sistema de tipos más rico y conformidad SQL más estricta; MariaDB tiene mayor despliegue en ecosistemas PHP/WordPress y replicación más fácil para veteranos de MySQL.
vs SQLite SQLite para apps embebidas mono-escritor. MariaDB para multi-escritor en red.
vs Galera Cluster vs MySQL InnoDB Cluster Galera es multi-master síncrono (escribe en cualquier sitio). InnoDB Cluster es asíncrono con failover explícito al primary. Elige Galera si quieres escribir en cualquier lado; InnoDB Cluster si prefieres la ruta bendecida por MySQL.

Preguntas frecuentes

¿Qué versión despliega Pier?
Default `latest` (MariaDB 11.x al momento de escribir). Versiones 11, 10.11 (LTS) y 10.6 también en el selector. Fija una versión mayor en producción.
¿Puedo reemplazar MySQL por MariaDB sin problemas?
Para MySQL 5.x — sí, drop-in casi perfecto. Para MySQL 8+ — usualmente sí, pero audita features como el plugin de autenticación por defecto (caching_sha2_password vs mysql_native_password), JSON paths y comportamientos específicos del optimizer.
¿Soporta modo clúster?
La plantilla de Pier soporta clústers de 2–5 nodos vía la imagen bitnami/mariadb. La replicación subyacente es Galera Cluster.
¿El formato de archivos de datos es compatible con MySQL?
Para InnoDB hasta MySQL 5.7 / MariaDB 10.2 — sí. Más allá, el formato puede divergir — migra siempre vía mysqldump/mariadb-dump y nunca por copia raw de ficheros.
¿Puerto y conexión por defecto?
3306/tcp. URI `mysql://root:password@host:3306/db` — el protocolo MySQL significa que el scheme mysql:// funciona.
¿Cuál es la situación de la licencia?
El servidor es GPLv2 (igual que MySQL Community). Las librerías cliente son LGPL (más permisivas que la lib cliente GPL de MySQL). Ambas son completamente open-source sin componentes source-available.
¿Para un proyecto nuevo elijo MySQL o MariaDB?
Para Web/PHP/WordPress puro — cualquiera funciona. Para Galera multi-master — MariaDB. Para Oracle Cloud / contratos de soporte enterprise — MySQL. Para garantías estrictas de gobernanza OSS — MariaDB.

Servicios relacionados

Desplegar en tu VPS

MariaDB es un fork comunitario, completamente open-source, de MySQL creado por los desarrolladores originales de MySQL tras la adquisición por Oracle. Es binario-compatible con MySQL 5.x y se mantiene drop-in para la mayoría de cargas MySQL 8.0, añadiendo motores de almacenamiento (ColumnStore, Aria), clúster Galera y una garantía OSS más fuerte bajo la MariaDB Foundation.

Desplegar este servicio →