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 |
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 |
1 |
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29 |
1 |
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD2 |
1 |
sudo apt install -f mysql-community-client=5.7* mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7 |