Degradación de MySql: de la versión 8.0.30 a la 5.7.39

Escenario

Seguro que no somos los primeros a quien les pasa que una actualización obligatoria de Ubuntu 18.04 al 20.04 acarrea una actualización no deseada de MySql a la versión 8.x.

Problema

En la versión 8.0.30 MySql no cuenta con la utilidad mysql_upgrade para dejar las tablas preparadas para una actualización de versión. En esta versión, cuando arranca, el servidor hace la comprobación automáticamente y, en nuestro caso, entró en un bucle al intentar migrar las tablas: Probamos, sin éxito, a lanzar mysqld con la opción --upgrade=NONE y luego con la opción --no-dd-upgrade. Tampoco valía con mover de sitio los ficheros .frm: MySql tampoco arrancaba, esta vez porque no coincidía la información de sus tablas del sistema con los ficheros existentes. Llegados a este punto no nos quedó más remedio que seguir el consejo de un usuario de internet que sugería desinstalar la versión 8 e instalar de nuevo la 5.7 de MySql.

Solución

Exceptuando unos cambios mínimos seguí las instrucciones expuestas en este articulo. La ventaja de esta solución es que no requiere desinstalar la versión asignada a Ubuntu 20.04. El primer paso es añadir e instalar el repositorio apt de MySql 5.7 no disponible en Ubuntu 20.04: No haremos caso al aviso de que la versión de Ubuntu instalada no se corresponde con la disponible en el repositorio y elegiremos Ubuntu Bionic, luego la opción MySQL Server & Cluster y después mysql-5.7 para acabar seleccionado ok. Después de lanzar sudo apt update me encontré con el siguiente error: Solucionado con: A continuación instalé la versión 5.7 del servidor SQL: Una vez instalado seguía sin arrancar debido a una directriz incompatible en /etc/mysql/mysql.conf.d/mysqld.cnf. Después de arreglarlo el servidor por fin arrancó. Un sudo mysql_upgrade -uroot -p avisaba de que las tablas conflictivas estaban corruptas pero, bueno, ése ya es otro problema.

Publicaciones Similares

Deja una respuesta

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