Desde hace ya algunas actualizaciones Ghost 5.x solo funciona con MySQL 8.x, esto es debido a la actualización de Ghost 4.x a Ghost 5.x. Desde Ghost 5.x ya estaban recomendado migrar todas las bases de datos a MySQL 8.x si estabas usando MariaDB o SQLite.

El otro día actualizando voidNull a la última versión de Ghost 5.x me di cuenta que dejó de funcionar algunas partes del backoffice tras la actualización, por lo tanto me vi obligado a migrar la base de datos de MariaDB 10.4 a MySQL 8.x.

Así que si os habéis encontrado con el mismo problema, os explico como lo solucioné. Todo este proceso se realizará sobre Debian 11.

Copia de seguridad

Lo primero que haremos será una copia de seguridad de la base de datos, para ello podemos exportar una copia siguiendo este otro tutorial:

Importar y exportar una Base de Datos en MySQL/MariaDB
Vamos con otro de esos posts obligados para un blog de SysAdmins. Generalmente para importar y exportar bases de datos podemos utilizar aplicaciones como PhpMyAdmin pero a veces dan problemas con bases de datos demasiadas pesadas y acabamos recibiendo un time-out.
📢
Si tu proveedor te ofrece la opción de crear snapshot del servidor, puede ser una buena idea para volver atrás en caso de que algo no haya funcionado correcatmente.

La copia de la base de datos la necesitamos de todas formas, ya que vamos a tener que eliminar MariaDB para luego instalar MySQL e importar la base de datos de nuevo. Así que guarda la copia en un lugar seguro.

Eliminar MariaDB

Si tienes la base de datos en otro servidor, no es necesario hacer este paso, pero si tienes Ghost y MariaDB en el mismo servidor, entonces si que tienes que seguir las siguientes instrucciones:

apt remove --purge mariadb-client-10.4 mariadb-client-core-10.4  mariadb-common mariadb-server mariadb-server-10.4 mariadb-server-core-10.4
📢
El comando para eliminar los paquetes está para la versión de MariaDB 10.4, si tienes otra versión seguramente tendrás que cambiar -10.4 por -10.x.

Recuerda que puedes visualizar los paquetes con dpkg -l | grep mariadb.

Durante el proceso, nos preguntará si queremos eliminar todas las bases de datos:

🚨
¡ATENCIÓN!

Haz este proceso únicamente si en el servidor tienes MariaDB con la base de datos de Ghost, si en el mismo servidor tienes otras bases de datos, deberás de hacer copias de esas bases de datos y revisar que el resto de aplicaciones soportan MySQL 8.x

Instalación de MySQL 8.x

Para instalar MySQL podemos seguir estas instrucciones para Debian 11, si estás utilizando otra distribución en la misma página tienes un botón para cambiar a otra distribución.

Cómo instalar MySQL 8 Server en Debian 11
MySQL es uno de los sistemas de gestión de bases de datos más utilizados y más popular. Utiliza el concepto de bases de datos relacionales y tiene una arquitectura cliente/servidor. Se puede instalar en diferentes distribuciones de GNU/Linux.

Importación de la base de datos

Ahora deberemos de crear un usuario, e importar la base de datos, para ello seguiremos este tutorial:

Crear base de datos y usuario con privilegios en MySQL/MariaDB
En el siguiente tutorial vamos ha explicar como crear una base de datos y un usuario para asignar permisos totales a esa base de datos. Acceder a MySQL/MariaDB Para gestionar bases de datos o usuarios, deberemos de acceder a la shell de MySQL/MariaDB. Existen programas como phpMyAdmin de

Con el usuario y base de datos creados con los permisos correspondientes, vamos a importar la base de datos:

# mysql -u ghost -p ghost < ghost.sql

Ahora Ghost ya debería de cargar de nuevo con la nueva base de datos corriendo en MySQL 8.X!

📢
Si utilizas Ghost-CLI es recomendable hacer un ghost restart para recargar ghost.
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación