Conocer la versión exacta de MySQL que estás ejecutando es información que necesitarás constantemente. La versión determina qué funciones están disponibles, qué sintaxis se soporta, qué bugs están presentes y qué parches de seguridad se han aplicado. Cuando buscas documentación, reportas un problema o planificas una migración, el número de versión es el punto de partida. MySQL ofrece varias formas de consultarlo, cada una útil en diferentes contextos.
SELECT VERSION()
La forma más directa y la que usarás con más frecuencia es la función VERSION():
SELECT VERSION();| VERSION() |
|---|
| 8.0.36 |
El resultado sigue el formato mayor.menor.parche. En este caso, 8 es la versión mayor, 0 es la versión menor y 36 es el número de parche. Las versiones menores (8.0, 8.1, 8.2, etc.) pueden incluir nuevas funcionalidades, mientras que los parches (8.0.35, 8.0.36, etc.) son correcciones de bugs y parches de seguridad dentro de la misma versión menor.
Algunos servidores muestran información adicional en el string de versión:
-- En una distribución comunitaria
SELECT VERSION();
-- Resultado: 8.0.36
-- En MySQL Enterprise
SELECT VERSION();
-- Resultado: 8.0.36-commercial
-- En MariaDB (un fork de MySQL)
SELECT VERSION();
-- Resultado: 10.11.6-MariaDBVariables de versión
Para obtener información más detallada, MySQL expone varias variables relacionadas con la versión:
SHOW VARIABLES LIKE 'version%';| Variable_name | Value |
|---|---|
| version | 8.0.36 |
| version_comment | MySQL Community Server |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
Cada variable proporciona un aspecto diferente.
La variable version es el número de versión puro. La variable version_comment indica la edición del servidor (Community Server, Enterprise, etc.). Las variables version_compile_machine y version_compile_os indican la arquitectura y el sistema operativo para los que se compiló el binario.
Puedes consultar estas variables individualmente:
SELECT
@@version AS version,
@@version_comment AS edicion,
@@version_compile_os AS sistema_operativo;| version | edicion | sistema_operativo |
|---|---|---|
| 8.0.36 | MySQL Community Server | Linux |
Desde la línea de comandos
Para conocer la versión sin necesidad de conectarte al servidor, puedes usar la opción --version de los binarios de MySQL:
mysql --versionmysql Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
mysqld --version/usr/sbin/mysqld Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
mysqladmin --versionmysqladmin Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
Estos comandos leen la versión del binario instalado en disco, no del servidor en ejecución. Si has actualizado los binarios pero aún no has reiniciado el servidor, el binario en disco y el servidor en ejecución pueden tener versiones diferentes. Para saber con certeza la versión del servidor que está corriendo, usa mysqladmin con una conexión real:
mysqladmin -u root -p versionServer version 8.0.36
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 12 days 6 hours 30 min 15 sec
Threads: 4 Questions: 892341 Slow queries: 12
Opens: 540 Flush tables: 3 Open tables: 120
Queries per second avg: 0.842
Este comando muestra la versión del servidor en ejecución junto con estadísticas útiles.
Caso práctico: verificar compatibilidad de funciones
Antes de usar una función que fue introducida en una versión específica, es buena práctica verificar la versión. Por ejemplo, JSON_TABLE() se introdujo en MySQL 8.0.4, y las expresiones CTE (Common Table Expressions) en MySQL 8.0. Si tu servidor es MySQL 5.7, estas funciones no estarán disponibles.
-- Verificar si la versión soporta CTEs (requiere 8.0+)
SELECT
CASE
WHEN @@version >= '8.0' THEN 'CTEs soportadas'
ELSE 'CTEs NO soportadas (requiere MySQL 8.0+)'
END AS compatibilidad;| compatibilidad |
|---|
| CTEs soportadas |
Para un chequeo más robusto, puedes usar la función VERSION() con comparación numérica:
SELECT
VERSION() AS version_actual,
CASE
WHEN CAST(SUBSTRING_INDEX(VERSION(), '.', 1) AS UNSIGNED) >= 8
THEN 'MySQL 8.x - Todas las funciones modernas disponibles'
WHEN VERSION() LIKE '5.7%'
THEN 'MySQL 5.7 - Sin CTEs, sin window functions'
ELSE 'Versión antigua - Considerar actualización'
END AS estado;| version_actual | estado |
|---|---|
| 8.0.36 | MySQL 8.x - Todas las funciones modernas disponibles |
Caso práctico: auditoría de versiones en múltiples servidores
Si administras múltiples servidores MySQL, mantener un registro de las versiones instaladas es importante para la planificación de actualizaciones y el cumplimiento de políticas de seguridad. Puedes crear un script que recopile esta información:
#!/bin/bash
# version_audit.sh
echo "=== Auditoría de versiones MySQL ==="
echo "Fecha: $(date)"
echo ""
for SERVER in primary replica1 replica2 staging; do
VERSION=$(mysql --login-path=$SERVER -N -e "SELECT VERSION()")
COMMENT=$(mysql --login-path=$SERVER -N -e \
"SELECT @@version_comment")
UPTIME=$(mysql --login-path=$SERVER -N -e \
"SELECT @@global.uptime")
echo "$SERVER: $VERSION ($COMMENT) - Uptime: ${UPTIME}s"
done=== Auditoría de versiones MySQL ===
Fecha: Tue Mar 18 16:45:00 UTC 2025
primary: 8.0.36 (MySQL Community Server) - Uptime: 1058423s
replica1: 8.0.36 (MySQL Community Server) - Uptime: 1058400s
replica2: 8.0.35 (MySQL Community Server) - Uptime: 2592000s
staging: 8.0.36 (MySQL Community Server) - Uptime: 345600s
Este informe revela que replica2 tiene una versión de parche anterior (8.0.35) y lleva 30 días sin reiniciar. Esto podría indicar que se le pasó una actualización y debería planificarse un mantenimiento.
Ciclo de vida y soporte
Conocer la versión también te permite verificar si tu instalación aún recibe actualizaciones de seguridad. Oracle publica un calendario de fin de soporte (EOL - End of Life) para cada versión de MySQL. Las versiones que ya no reciben parches de seguridad representan un riesgo para tu infraestructura.
-- Consulta rápida para incluir en reportes
SELECT
VERSION() AS version,
@@version_comment AS edicion,
@@version_compile_os AS sistema,
NOW() AS fecha_consulta;| version | edicion | sistema | fecha_consulta |
|---|---|---|---|
| 8.0.36 | MySQL Community Server | Linux | 2025-03-18 16:45:00 |
Conocer la versión exacta de tu servidor MySQL es el primer paso para tomar decisiones informadas sobre funcionalidades, actualizaciones y seguridad. En el siguiente artículo veremos SHOW PROCESSLIST, un comando esencial para monitorear las conexiones y consultas activas en el servidor.
Escrito por Eduardo Lázaro
