Actualización de MySQL: de la versión 5.7 a 8.0

Atención no probar esta solución en sistemas en producción. Es solo una demostración de prueba.

Escenario

Por la razón que fuera queremos actualizar la versión de MySQL de 5.7 a 8.0 en ubuntu 16.04. En mi caso quería probar si con la actualización mejoraba cierto problemillas que estaba teniendo con la codificación de caracteres.

Problema

No tiene porque ser un problema en sí, pero, al estar en producción, es necesario cerciorarse que disponemos de una copia de seguridad completa y que el proceso puede ser revertido en caso de fallo.

Solución

El primer paso consiste en asegurarse que nuestro sistema cumple con los requisitos necesarios para instalar la nueva versión de MySQL. Si no tienes instalado el repositorio oficial de MySQL, se puede descargar de esta página e instalarlo con el siguiente comando, en mi caso: Dejamos las opciones por defecto (debe quedar escogida la versión 5.7) y seleccionamos «ok» para completar la instalación del repositorio. A continuación refrescamos el listado de apt y, para empezar, instalamos la aplicación de línea de comando que vamos a necesitar. Ahora ya podemos verificar si nuestro sistema cumple con los requisitos: En caso de que apareciera un error, deberíamos corregirlo antes de empezar la actualización. El siguiente paso es hacer una copia de todas las bases de datos, incluidas las del sistema. He utilizado mysqldump: Y, además, he hecho una copia de seguridad de los ficheros físicos: y de los ficheros de configuración: Ahora que sabemos que nuestro sistema es apto para la instalación y que disponemos de una copia de seguridad, volvemos a lanzar el comando para instalar los productos del repositorio oficial de MySQL: Esta vez, en vez de la versión 5.7, elegimos la 8.0 y «ok». A continuación actualizamos apt de nuevo e instalamos las nuevas versiones de MySQL: Si surge algún problema durante la instalación, los registros de errores en /var/mysql/error.log nos pueden servir de ayuda. En mi caso, por ejemplo, tenía declarada una variable obsoleta en la nueva versión («unknown variable ‘query_cache_limit=1M’«). Una vez finalizado el proceso de instalación de la nueva versión, nos queda lanzar las instrucciones siguientes para actualizar las tablas de la base de datos: Y, con esto, ya deberíamos tener corriendo la nueva versión de MySQL:

Publicaciones Similares

  • Autenticación múltiple en Spring boot: JWT y formulario

    Escenario Por exigencias de un tercero debemos adaptar nuestro servicio web para que sea compatible con autenticación por JWT. Hasta ahora las llamadas al API se hacían desde dentro de la aplicación usando las mismas credenciales del usuario autenticado por cookie. La configuración de la cadena de filtros de Spring Security es la siguiente:

    …

  • La tabla mysql.plugin no existe

    Escenario Después de necesitar restaurar tres veces el servidor de MySql por culpa de varios crashs provocados por un fallo en el disco duro, encuentro en los logs entradas de este tipo: 2020-09-12T18:46:22.347957Z 5 [Warning] InnoDB: Cannot open table mysql/help_relation from the internal data2020-09-12T18:46:22.348985Z 5 [Warning] InnoDB: Cannot open table mysql/innodb_index_stats from the internal data dictionary of InnoDBdictionary Problema En varios foros leo que la solución pasa por hacer un:

    La cuestión es que, cuando lo intento, me encuentro…

  • cURL error 60: SSL certificate problem: unable to get local issuer certificate

    Escenario Todo empezó con el aviso de un proveedor. Un plugin de WordPress fallaba con el siguiente error: cURL error 60: SSL certificate problem: unable to get local issuer certificate Problema Una búsqueda rápida con Google me lleva a la conclusión de que hay que editar el fichero de configuración php.ini. A fin de averiguar…

  • Panasonic RR-US361

    Escenario Panasonic RR-US361 es una grabadora portátil de audio que, por la información que he podido recopilar, debe datar de principios de siglo. La utilizo de vez en cuando para grabar mis sueños. Me resulta más cómodo que el móvil por dos razones. Evito la luz de la pantalla, y no corro el riesgo de…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *