Saltar al contenido
Marcos Peña
Menú
  • Acerca de…
Menú

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

Publicada el julio 31, 2022agosto 1, 2022 por Marcos

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:
1
2
3
4
5
6
7
2022-07-29T08:42:02.775215Z 2 [ERROR] [MY-010348] [Server] Error in reading file ./acme_db/acme.frm
2022-07-29T08:42:02.775243Z 2 [ERROR] [MY-010758] [Server] Error in creating TABLE_SHARE from acme.frm file.
..
2022-07-29T08:42:08.220858Z 2 [ERROR] [MY-010923] [Server] Table upgrade required. Please do "REPAIR TABLE `acme`" or dump/reload to fix it!
...
2022-07-29T08:42:29.283473Z 0 [ERROR] [MY-010022] [Server] Failed to Populate DD tables.
2022-07-29T08:42:29.283560Z 0 [ERROR] [MY-010119] [Server] Aborting
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:
1
2
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
$ sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
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:
1
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
Solucionado con:
1
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD2
A continuación instalé la versión 5.7 del servidor SQL:
1
sudo apt install -f mysql-community-client=5.7*  mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7
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.

Deja una respuesta Cancelar la respuesta

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

Artículos

  • julio 2022
  • junio 2022
  • mayo 2022
  • abril 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • mayo 2021
  • abril 2021
  • marzo 2021
  • febrero 2021
  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • noviembre 2018
  • octubre 2018
  • julio 2016
  • mayo 2016
  • abril 2016
  • agosto 2015
  • febrero 2014
  • junio 2013
  • febrero 2013
  • noviembre 2012
  • octubre 2012
  • septiembre 2012
  • abril 2012
  • enero 2012

Categorías

  • Cómo
  • Consejos
  • Hacks
  • Sin sentido
  • Tutorial

Etiquetas

apache Apexcharts API aws chartjs comodo ec2 firefox freebsd freenas Google gpg guacamole Hangouts java Javascript kubuntu Laravel last.fm Linux Malware mysql nas4free nginx partición disco php plesk python react Realtek Seguridad sftp sonata-admin spring spring-boot ssh ssl symfony symfony2 symfony4 thymeleaf ubuntu vnc windows xfs

Entradas recientes

  • Degradación de MySql: de la versión 8.0.30 a la 5.7.39
  • OsTicket y nginx
  • Extracción del texto de un pdf creado a partir de una imagen
  • Confirmación antes de apagar
  • cURL error 60: SSL certificate problem: unable to get local issuer certificate

Comentarios recientes

  • Marcos en Deobbing flash
  • Irosales en Deobbing flash
  • Instalación certificado SSL de un vendedor – Marcos Peña en Instala un certificado SSL en tres pasos
  • gerMdz en Cómo instalar un certificado letsencrypt para un sitio gestionado por Cloudflare
  • Jose Olalla en Cómo ampliar el espacio en disco en 1and1

Archivos

  • julio 2022
  • junio 2022
  • mayo 2022
  • abril 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • mayo 2021
  • abril 2021
  • marzo 2021
  • febrero 2021
  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • noviembre 2018
  • octubre 2018
  • julio 2016
  • mayo 2016
  • abril 2016
  • agosto 2015
  • febrero 2014
  • junio 2013
  • febrero 2013
  • noviembre 2012
  • octubre 2012
  • septiembre 2012
  • abril 2012
  • enero 2012

Categorías

  • Cómo
  • Consejos
  • Hacks
  • Sin sentido
  • Tutorial

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
© 2022 Marcos Peña | Funciona con Minimalist Blog Tema para WordPress