A pesar de que MariaDB es compatible para versiones de Ghost 4.x, en las últimas actualizaciones ha dejado de ser compatible. Sobretodo para la versión de Ghost 5.x. Si tienes pensado actualizar Ghost 4.x a Ghost 5.x debes de tener en cuenta que si usas nuestra imagen deberás de hacer un cambio de MariaDB 10.x por MySQL 8.x.
En este tutorial te explicamos como realizar este cambio. Debemos de tener en cuenta que la imagen de Ghost esta sobre Ubuntu 20.04, por lo tanto MySQL 8.x no se encuentra en los repositorios.
Copia de seguridad de los datos
Lo primero será crear un snaphost para tener una copia del servidor antes de realizar el cambio. Y luego deberemos de crear un backup de la base de datos para luego importarla de nuevo a MySQL 8.x.
Para la copia de seguridad de la base de datos:
mysqldump -u ghost ghost -p > ghost.sql
Eliminar MariaDB
El siguiente paso es eliminar MariaDB de nuestro servidor, para ello ejecutamos el siguiente comando:
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
Durante el proceso, nos pedirá si queremos eliminar las bases de datos, como que tenemos una copia de nuestro Ghost, le diremos que si.
Instalación de MySQL
Lo primero será añadir el repositorio, descargamos el siguiente paquete:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
Lo instalamos:
sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
Seleccionamos la primera opción y le damos a Ok.
Seleccionamos mysql-8.0. y le damos a Ok. En la siguiente pantalla selecionamos Ok de nuevo.
Tras instalar el paquete, actualizamos los repositorios:
apt update
Luego instalamos los paquetes necesarios:
apt install mysql-client mysql-community-server mysql-server
Durante el proceso de instalación te pedirá que configures una contraseña segura.
Securizar MySQL
Es recomendable que una vez instalado, ejecutar el siguiente comando para securizar el servicio:
mysql_secure_installation
Importamos la base de datos
Ahora importamos la base de datos que hemos exportado anteriormente, para ello tenemos que acceder a MySQL y crear la base de datos y otorgar los permisos necesarios:
mysql -u root -p
Y aquí ejecutamos:
CREATE DATABASE ghost;
CREATE USER ghost@localhost IDENTIFIED BY '[CONTRASEÑA]';
GRANT ALL PRIVILEGES ON ghost.* TO ghost@localhost;
FLUSH PRIVILEGES;
Para la contraseña del usuario, deberemos de utilizar la misma que se encuentra en el fichero /var/www/ghost/config.production.json.
Y ahora la importamos:
mysql -u ghost -p ghost < ghost.sql
Una vez hemos importado la base de datos, es recomendable reiniciar la instancia de Ghost para que recargue la configuración.
su - ghostinst
cd /var/www/ghost
ghost restart