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 dequery_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