[{"data":1,"prerenderedAt":210},["ShallowReactive",2],{"seo-verification":3,"blog-mysql-8-0-fin-de-soporte-migracion-vps-ma-es":6,"promo-bar-likely":209},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-mysql-8-0-fin-de-soporte-migracion-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":148,"ctaBody":149,"ctaButton":150,"ctaUrl":151,"relatedPosts":152},464,"mysql-8-0-fin-de-soporte-migracion-vps",{"fr":12,"en":13,"ar":14,"es":10},"mysql-8-0-eol-migration-vps","mysql-8-0-end-of-life-migration-vps","mysql-8-0-انتهاء-الدعم-ترقية-vps","Migrar MySQL 8.0 a 8.4 LTS en un VPS: guía paso a paso","MySQL 8.0 fin de vida el 30 de abril de 2026. Migra a MySQL 8.4 LTS — cambios incompatibles, requisitos previos, actualización in-place y cuándo elegir MariaDB 11.x.",11,0,false,"2026-10-17T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},6,"Bases de datos","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmysql-8-0-eol-migration-vps-poster.svg","El 30 de abril de 2026, Oracle puso fin oficialmente al soporte de MySQL 8.0: ya no se publican parches de seguridad para esta rama. Cada CVE identificada permanece abierta de forma permanente en tu servidor. MySQL 8.4, la primera versión LTS de la serie 8, toma el relevo: Premier Support hasta abril de 2029 y luego Extended Support hasta abril de 2032. Esta guía detalla las incompatibilidades que debes conocer, las verificaciones que debes hacer antes del cambio, el procedimiento de actualización in-place en un VPS Linux y los casos concretos en los que MariaDB 11.x es una mejor opción.",[35,39,42,45,55,58,64,95,98,100,102,105,136,138,145],{"type":36,"title":37,"body":38},"h2","Por qué migrar ahora: fin de vida y exposición a CVE","El fin de vida oficial de MySQL 8.0 es el 30 de abril de 2026, según el calendario Oracle Lifetime Support (oracle.com\u002Fsupport\u002Flifetime-support\u002F). A partir de esa fecha, Oracle ya no publica parches de seguridad para la rama 8.0.x, independientemente de la gravedad de una CVE. Los servidores que permanecen en 8.0 acumulan una deuda de seguridad que crece con cada CPU (Critical Patch Update) trimestral de Oracle, sin que se resuelva nunca.",{"type":40,"body":41},"p","MySQL 8.4 es la primera versión designada LTS en la historia de MySQL. Según la política Lifetime Support de Oracle, una serie LTS recibe cinco años de Premier Support y luego tres años de Extended Support: para la 8.4, hasta abril de 2029 y después hasta abril de 2032 (dev.mysql.com\u002Fdoc\u002Frefman\u002F8.4\u002Fen\u002Fmysql-releases.html). A diferencia de las ramas de innovación 8.1, 8.2 y 8.3 — publicadas entre 2023 y 2024 sin soporte extendido — la 8.4 recibe parches de seguridad y correcciones de estabilidad a largo plazo. Una segunda serie LTS, MySQL 9.7, salió en abril de 2026, pero Oracle no admite saltarse una serie LTS: desde la 8.0, la 8.4 es el paso obligado, y la 9.7 se prepara después a partir de la 8.4.",{"type":36,"title":43,"body":44},"Cambios incompatibles que debes conocer antes de la migración","—",{"type":46,"items":47},"ul",[48,49,50,51,52,53,54],"**`mysql_native_password` desactivado**: el plugin de autenticación `mysql_native_password`, deprecado desde MySQL 8.0.34, ya no se carga por defecto en MySQL 8.4 (se elimina en 9.0). Puede reactivarse temporalmente con `mysql_native_password=ON` en la sección `[mysqld]` mientras se migran las cuentas. Cualquier cuenta de usuario que dependa de este plugin fallará al conectarse de inmediato tras la actualización. Aplicaciones PHP anteriores a PHP 7.4, WordPress sin PDO configurado correctamente y clientes JDBC heredados son los casos más habituales.","**Cambio del parámetro `authentication_policy`**: la variable `default_authentication_plugin`, deprecada desde 8.0.27, se elimina en 8.4: una línea que quede en `my.cnf` impide que el servidor arranque. `authentication_policy` la sustituye; su valor por defecto (`*,,`) ya usa `caching_sha2_password` para el primer factor. Debe reemplazarse por `authentication_policy`.","**Opciones de servidor eliminadas**: `expire_logs_days` (sustituida por `binlog_expire_logs_seconds`), `--skip-host-cache` (sustituida por `host_cache_size = 0`), `--ssl` y `--admin-ssl` (sustituidas por `--tls-version` y `--admin-tls-version`), `binlog_transaction_dependency_tracking`, `avoid_temporal_upgrade` y `show_old_temporals` ya no existen en 8.4: definirlas, en tiempo de ejecución o en `my.cnf`, produce un error.","**Columnas JSON**: como en toda actualización de versión mayor, las consultas que dependen de `JSON_TABLE()`, `JSON_VALUE()` o de rutas JSON complejas deben repetirse antes del cambio. Valida las tablas con columnas JSON grandes en un entorno de prueba antes de pasar a producción.","**Juego de caracteres y cotejamiento**: `utf8mb4` y `utf8mb4_0900_ai_ci` siguen siendo los valores por defecto, y el juego `utf8mb3` (del que `utf8` es el alias) está deprecado: sigue aceptado durante toda la serie 8.4, pero Oracle anuncia su eliminación en una futura versión mayor. Conviene planificar una migración a `utf8mb4` para bases de datos históricas creadas bajo MySQL 5.7.","**Variables de sistema eliminadas o renombradas**: varias opciones de replicación deprecadas en 8.0 se eliminan en 8.4 — especialmente `master_info_repository` y `relay_log_info_repository` (solo quedan las tablas de metadatos, resistentes a fallos), `slave_rows_search_algorithms` y `log_bin_use_v1_events`; las variables `slave_*` restantes están deprecadas en favor de `replica_*`, y las variables `query_cache_*` desaparecieron ya en 8.0 con la caché de consultas. El Upgrade Checker de MySQL Shell (`util.checkForServerUpgrade()`) señala estos puntos antes del cambio.","**Replicación**: los nombres de variables relacionadas con la replicación han pasado definitivamente a la terminología `source`\u002F`replica`. Las instrucciones antiguas se eliminan en 8.4: cualquier script o herramienta de monitoreo que llame a `SHOW SLAVE STATUS` debe actualizarse a `SHOW REPLICA STATUS`, igual que `START SLAVE` → `START REPLICA`, `CHANGE MASTER TO` → `CHANGE REPLICATION SOURCE TO` y `SHOW MASTER STATUS` → `SHOW BINARY LOG STATUS`.",{"type":36,"title":56,"body":57},"Requisitos previos antes de comenzar","Una migración de motor de base de datos en producción no se improvisa. Tres condiciones deben cumplirse: una copia de seguridad verificada, conocimiento exacto de tu versión actual y una verificación de compatibilidad de la aplicación.",{"type":46,"items":59},[60,61,62,63],"**Copia de seguridad completa y verificada**: ejecuta `mysqldump --all-databases --single-transaction --routines --events > backup_pre_migration.sql` y verifica que el archivo sea legible. Una copia de seguridad no verificada no es una copia de seguridad.","**Versión actual y motores de tablas**: ejecuta `SELECT VERSION();` y lista las tablas no InnoDB desde `information_schema.tables`. Cualquier tabla MyISAM o MEMORY debe evaluarse antes de la actualización.","**Compatibilidad de la aplicación**: identifica el plugin de autenticación de cada cuenta con `SELECT user, host, plugin FROM mysql.user;`. Cualquier usuario en `mysql_native_password` debe migrarse a `caching_sha2_password`.","**Espacio en disco disponible**: el dump de copia de seguridad y la actualización del diccionario de datos ocupan espacio en el disco del servidor. Verifica que haya al menos un 20% de espacio libre en la partición `\u002Fvar`.",{"type":65,"title":66,"steps":67},"steps","Procedimiento de migración MySQL 8.0 → 8.4 LTS en un VPS",[68,71,74,77,80,83,86,89,92],{"title":69,"body":70},"Copia de seguridad completa con verificación","Ejecuta `mysqldump --all-databases --single-transaction --routines --events --triggers > \u002Froot\u002Fbackup_mysql80_$(date +%Y%m%d).sql`. Verifica el final del archivo con `tail -5 \u002Froot\u002Fbackup_mysql80_*.sql`: la última línea debe ser `-- Dump completed on …`. Almacena el archivo fuera del VPS antes de continuar.",{"title":72,"body":73},"Auditoría de cuentas y plugins de autenticación","Ejecuta `SELECT user, host, plugin FROM mysql.user ORDER BY plugin;`. Para cada usuario en `mysql_native_password`, ejecuta `ALTER USER 'nombre'@'host' IDENTIFIED WITH caching_sha2_password BY 'contraseña';`. Actualiza la cadena de conexión de cada aplicación afectada antes de la actualización.",{"title":75,"body":76},"Verificación de variables deprecadas en my.cnf","Abre `\u002Fetc\u002Fmysql\u002Fmysql.conf.d\u002Fmysqld.cnf` y elimina o reemplaza: `default_authentication_plugin` → `authentication_policy = caching_sha2_password`, `expire_logs_days` → `binlog_expire_logs_seconds`, `skip-host-cache` → `host_cache_size = 0`, `slave_*` → `replica_*`, `master_info_repository`, `relay_log_info_repository`. Cualquier variable desconocida impide que MySQL 8.4 arranque.",{"title":78,"body":79},"Parada limpia del servicio y snapshot","En un VPS Proxmox o KVM, toma un snapshot antes de tocar los paquetes. Luego: `systemctl stop mysql` y verifica que el servicio está detenido con `systemctl status mysql`.",{"title":81,"body":82},"Añadir el repositorio MySQL 8.4 y actualizar paquetes","En Debian 12 \u002F Ubuntu 22.04: descarga el paquete de configuración del repositorio MySQL desde `dev.mysql.com\u002Fdownloads\u002Frepo\u002Fapt\u002F`, instálalo con `dpkg -i mysql-apt-config_*.deb`, selecciona MySQL 8.4 LTS en el menú, luego ejecuta `apt-get update && apt-get install mysql-server`.",{"title":84,"body":85},"Actualización de tablas del sistema","En el primer arranque de MySQL 8.4, el motor actualiza las tablas del sistema automáticamente. Verifica en los logs: `journalctl -u mysql -n 50 | grep -i 'upgrade\\|error'`. Si la actualización automática no se ejecutó, no busques `mysql_upgrade`: la herramienta se eliminó en 8.4. Reinicia el servidor una vez con la opción `--upgrade=FORCE` (por ejemplo `upgrade = FORCE` en la sección `[mysqld]`, que se retira después).",{"title":87,"body":88},"Verificación post-actualización","Conéctate y verifica la versión: `SELECT VERSION();` debe devolver `8.4.x`. Luego ejecuta `mysqlcheck --all-databases --auto-repair --user=root --password`. Revisa el log de errores `\u002Fvar\u002Flog\u002Fmysql\u002Ferror.log`.",{"title":90,"body":91},"Test funcional de la aplicación","Reinicia tu aplicación y verifica los puntos sensibles: conexión a la base de datos, autenticación de usuarios, consultas en columnas JSON, procedimientos almacenados. Una cuenta que sigue en `mysql_native_password` sin migrar falla con `ERROR 1045 (28000): Access denied` y deja una traza en el log del servidor; el error `The server requested authentication method unknown to the client` indica en cambio un cliente demasiado antiguo para `caching_sha2_password` (PHP anterior a 7.4, por ejemplo).",{"title":93,"body":94},"Limpieza y activación de la monitorización","Elimina el archivo de copia de seguridad local una vez confirmada la copia externa. Verifica tu herramienta de monitorización: algunos nombres de métricas cambiaron entre 8.0 y 8.4. Programa una revisión del log de errores MySQL a las 24h y 72h post-migración.",{"type":36,"title":96,"body":97},"MariaDB 11.x: cuándo preferir esta alternativa","MariaDB 11.x es un fork de MySQL que ha divergido significativamente desde la versión 10.3. Hay casos concretos donde MariaDB 11.x es más adecuado que actualizar a MySQL 8.4, y casos donde no lo es.",{"type":40,"body":99},"**Prefiere MariaDB 11.x si** tu aplicación usa características propias de MariaDB (tablas versionadas por el sistema, secuencias, motor Spider, Galera Cluster nativo); si necesitas un clúster multi-maestro sin la complejidad de MySQL Group Replication; o si quieres permanecer en un fork que mantiene `mysql_native_password` por defecto, lo que simplifica la migración de aplicaciones heredadas. MariaDB 11.4 LTS tiene soporte hasta mayo de 2029 y la 11.8 LTS hasta junio de 2028; una nueva serie LTS, la 12.3, salió en mayo de 2026. La licencia del servidor es GPLv2.",{"type":40,"body":101},"**Prefiere MySQL 8.4 LTS si** tu aplicación fue desarrollada y probada específicamente contra MySQL (ORM como Laravel Eloquent o Hibernate que aprovechan funcionalidades propias de MySQL); si usas MySQL Enterprise para funciones como el audit plugin o el Thread Pool comercial; o si tu proveedor de hosting solo soporta copias de seguridad optimizadas para MySQL (Percona XtraBackup). La migración de MySQL 8.0 a MariaDB 11.x es una migración entre motores distintos, más arriesgada y fuera del alcance de esta guía — merece un procedimiento dedicado con pruebas de integración completas.",{"type":103,"body":104},"tip","**Rollback posible en las primeras 24 horas**: si tomaste un snapshot del VPS antes de la actualización, restaurarlo devuelve el servidor al estado de MySQL 8.0 en minutos. Sin snapshot, el rollback desde un dump SQL es posible pero más lento. No elimines la copia de seguridad ni el snapshot hasta después de 72 horas de producción estable en MySQL 8.4.",{"type":106,"title":107,"headers":108,"rows":113},"comparison","MySQL 8.0 vs MySQL 8.4 LTS vs MariaDB 11.x",[109,110,111,112],"Criterio","MySQL 8.0","MySQL 8.4 LTS","MariaDB 11.x",[114,119,124,128,132],[115,116,117,118],"Soporte de seguridad","Terminado (30 abr. 2026)","Premier: abril de 2029 · Extended: abril de 2032","Hasta 2029 (11.4 LTS)",[120,121,122,123],"mysql_native_password","Presente (deprecado)","Desactivado por defecto (eliminado en 9.0)","Presente por defecto",[125,126,126,127],"Clúster multi-maestro","Group Replication","Galera Cluster nativo",[129,130,130,131],"Compatibilidad apps MySQL","Nativa","Mayoritaria, algunas diferencias",[133,134,134,135],"Licencia","GPL + Enterprise comercial","GPLv2 (MariaDB Foundation)",{"type":36,"title":137,"body":44},"Resolución de problemas: errores comunes tras la migración",{"type":46,"items":139},[140,141,142,143,144],"**`ERROR 1045 (28000): Access denied`** tras la actualización: verifica el plugin de autenticación de la cuenta con `SELECT plugin FROM mysql.user WHERE user='nombre';`. Si sigue siendo `mysql_native_password`, la cuenta no se migró (la actualización no cambia el plugin de ninguna cuenta): ejecuta `ALTER USER … IDENTIFIED WITH caching_sha2_password BY '…';`.","**`Unknown system variable 'default_authentication_plugin'`**: esta variable ya no se reconoce en 8.4. Retírala de `my.cnf` y reemplázala por `authentication_policy = caching_sha2_password`.","**MySQL no arranca tras la actualización**: consulta `\u002Fvar\u002Flog\u002Fmysql\u002Ferror.log`. El error más frecuente es una variable de sistema desconocida en `my.cnf`. Comenta las variables una a una hasta identificar el origen.","**Rendimiento degradado en consultas de ordenación**: el optimizador de MySQL 8.4 puede elegir planes de ejecución distintos de los de la 8.0 en algunas consultas. Ejecuta `EXPLAIN` en las consultas lentas y verifica que los índices cubrientes siguen utilizándose. `ANALYZE TABLE nombre_tabla;` fuerza la actualización de estadísticas.","**Scripts de monitorización con errores tras la actualización**: los contadores `Com_slave_*` y `Com_show_master_status` se eliminan en 8.4 en favor de `Com_replica_*` y `Com_show_binary_log_status`, y las instrucciones `SLAVE`\u002F`MASTER` ya no existen. Actualiza las consultas de monitorización usando los nombres documentados en `dev.mysql.com\u002Fdoc\u002Frefman\u002F8.4\u002Fen\u002Fperformance-schema.html`.",{"type":36,"title":146,"body":147},"Pasar a MySQL 8.4 LTS: lo esencial","Migrar de MySQL 8.0 a MySQL 8.4 LTS es una actualización in-place realizable en menos de una hora en un VPS bien preparado. Los dos puntos de fallo más habituales son la desactivación por defecto de `mysql_native_password` — que rompe las conexiones de aplicaciones heredadas si las cuentas no se han migrado — y las variables de sistema eliminadas en `my.cnf`, que impiden arrancar el servicio. Una auditoría previa de estos dos puntos reduce el riesgo a casi cero. Para stacks que necesitan `mysql_native_password` o un clúster multi-maestro sin complejidad de configuración, MariaDB 11.4 LTS es una alternativa seria, siempre que la migración se trate como una operación separada con sus propias pruebas de integración.","Un VPS Linux para tu base de datos MySQL 8.4","Aloja MySQL 8.4 LTS en un VPS Linux administrado, con snapshots incluidos para asegurar cada migración.","Ver planes VPS Linux","\u002Fvps-linux",[153,172,192],{"id":154,"slug":155,"slugs":156,"title":160,"excerpt":161,"readTime":162,"views":18,"isPinned":19,"noindex":19,"publishedAt":163,"updatedAt":164,"category":165,"categories":166,"featuredImage":30,"bgImage":31,"posterImage":168,"relatedSolution":169},57,"alojar-mysql-en-un-vps",{"fr":157,"en":158,"ar":159,"es":155},"heberger-mysql-vps","hosting-mysql-on-a-vps","استضافة-mysql-على-خادم-vps","Alojar MySQL en un VPS: guía completa","Instale MySQL 8.4 LTS en un VPS: requisitos, seguridad, rendimiento InnoDB, acceso remoto seguro, copias de seguridad automatizadas y resolución de errores.",9,"2026-04-24T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[167],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"categorySlug":170,"appSlug":171},"bases-de-datos","mysql-stack",{"id":173,"slug":174,"slugs":175,"title":179,"excerpt":180,"readTime":181,"views":182,"isPinned":19,"noindex":19,"publishedAt":183,"updatedAt":184,"category":185,"categories":186,"featuredImage":30,"bgImage":31,"posterImage":188,"relatedSolution":189},146,"alojar-mariadb-en-un-vps",{"fr":176,"en":177,"ar":178,"es":174},"heberger-mariadb-vps","mariadb-on-a-vps-free-fast-controlled-sql","mariadb-على-vps-sql-حر-وسريع-وتحت-السيطرة","MariaDB en VPS: SQL libre, rápido y bajo control","Despliegue MariaDB en un VPS ServOrbit: instalación en 1 clic, copias de seguridad automatizadas, ajuste InnoDB y acceso remoto seguro.",10,1,"2026-01-30T00:00:00+00:00","2026-10-07T23:07:24+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[187],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-mariadb-vps-poster.svg",{"categorySlug":190,"appSlug":191},"db","mariadb-stack",{"id":193,"slug":194,"slugs":195,"title":199,"excerpt":200,"readTime":201,"views":202,"isPinned":19,"noindex":19,"publishedAt":203,"updatedAt":204,"category":205,"categories":206,"featuredImage":30,"bgImage":31,"posterImage":208,"relatedSolution":30},225,"postgresql-fin-de-vida-planificar-actualizacion",{"fr":196,"en":197,"ar":198,"es":194},"postgresql-fin-de-vie-planifier-montee-version","postgresql-end-of-life-plan-your-major-upgrade","postgresql-ونهاية-الدعم-تخطيط-الترقية-الكبرى","PostgreSQL en fin de vida: planificar la actualización mayor","PostgreSQL mantiene cada versión mayor cinco años, hasta su fin en noviembre. Identifique la suya y planifique la actualización sin perder datos.",4,3,"2026-08-05T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[207],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fpostgresql-fin-de-vie-planifier-montee-version-poster.svg",true,1794270631027]