Actualización de MySQL 5.7 a MySQL 8

Prerrequisitos

Para migrar de MySQL 5.7 a MySQL 8 debe estar actualizado como mínimo a la versión 104 de Pandora ITSM.

  • Abrir una ventana terminal con el usuario root e introducir el siguiente comando:
mysql --version

Se obtendrá una respuesta parecida a la siguiente:

mysql  Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using EditLine wrapper
  • Realizar un procedimiento de respaldo de datos de la base de datos, denominada de ahora en adelante como < pandora_itsm_db_name >.

Rocky Linux 8/AlmaLinux 8/RHEL 8

  • Detener el servidor Apache web:
systemctl stop httpd.service

O bien:

/etc/init.d/httpd stop
  • Hacer un respaldo especial de la base de datos que sea compatible con MySQL 8:
mysqldump -u root -p < pandora_itsm_db_name > \
  --skip-add-drop-table \
  --complete-insert \
  --no-create-info> backup_pandora_itsm.sql
  • Hacer un respaldo tal cual está hecho en MySQL 5.7 (seguro adicional si se tiene que volver a esta versión):
mysqldump -u root -p < pandora_itsm_db_name > > backup_pandora_itsm_5.7.sql
  • Hacer un respaldo del fichero de configuración de MySQL (my.cnf):
cp /etc/my.cnf /tmp/my.cnf.BACK
  • Borrar los repositorios de Percona 5:
rpm -qa | grep Percona-Server | xargs rpm -e --nodeps
  • Instalar los repositorios de Percona 8:
dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
  • Habilitar los repositorios del paso anterior:
percona-release setup ps80
  • Instalar Percona 8
dnf install percona-server-server
  • Restablecer el fichero my.cnf:
mv /tmp/my.cnf.BACK /etc/my.cnf
  • Modificar el fichero my.cnf para prescindir de query_cache_*:
sed -i -e "s/^query_cache_type.*/#query_cache_type/g" /etc/my.cnf
sed -i -e "s/^query_cache_size.*/#query_cache_size/g" /etc/my.cnf
sed -i -e "s/^query_cache_min_res_unit.*/#query_cache_min_res_unit/g" /etc/my.cnf
sed -i -e "s/^query_cache_limit.*/#query_cache_limit/g" /etc/my.cnf
  • Iniciar el servicio MySQL:
systemctl start mysql

o bien

service mysqld start
  • Verificar la versión instalada con:
mysql --version

Se obtendrá una respuesta parecida a la siguiente:

mysql  Ver 8.0.28-19 for Linux on x86_64 (Percona Server (GPL), Release 19, Revision 31e88966cd3)

Utilizar la línea de comando propia de MySQL:

  • Borrar la base de datos < pandora_itsm_db_name >.
  • Crear una nueva base de datos < pandora_itsm_db_name >.
  • Abrir la base de datos < pandora_itsm_db_name > e importar el esquema que se encuentra en la Consola web PFMS.
  • Importar los datos que se encuentran en el respaldo especial compatible con MySQL 8.
mysql -u root -p < pandora_itsm_db_name >
DROP DATABASE < pandora_itsm_db_name >;
CREATE DATABASE < pandora_itsm_db_name >;
USE < pandora_itsm_db_name >;
SOURCE /var/www/html/pandoraitsm/integria_db.sql;
SOURCE backup_pandora_itsm.sql;
  • Se debe agregar de nuevo los permisos (grants) necesarios; si no está conectado a mysql como usuario root (sustituya < password > con la contraseña correspondiente) ejecute:
mysql -uroot -p < password >
  • Una vez conectado como root ejecutar los siguientes comandos:
  • Desactivar el plugin de validación de password (opcional).
UNINSTALL COMPONENT 'file://component_validate_password';
  • Si no existe, crear el usuario de conexión:
CREATE USER "<DBUSER>"@'%' IDENTIFIED BY "<DBPASS>";

Si se quiere restringir la dirección IP de conexión a la base de datos, se debe cambiar el % por la dirección IP de la fuente de conexión.

  • Asignar la password nativa para mysql:
ALTER USER "<DBUSER>"@'%' IDENTIFIED WITH mysql_native_password BY "<DBPASS>";
  • Otorgar los grants sobre la base de datos de Pandora ITSM (< pandora_itsm_db_name >):
GRANT ALL PRIVILEGES ON < pandora_itsm_db_name >.* TO "<DBUSER>"@'%';
  • Guardar los cambios y salir:
FLUSH privileges;
exit

Un vez finalizado el trabajo con la base de datos, realizar los siguientes pasos:

  • Iniciar el servidor Apache web:
systemctl start httpd.service

O bien:

/etc/init.d/httpd start

Volver al índice de documentación de Pandora ITSM