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 NG 760 MR 52 de Pandora FMS.
- Abrir una ventana terminal con el usuario root e introduzca el siguiente comando:
mysql --version
Obtendrá una respuesta parecida a la siguiente:
mysql Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using EditLine wrapper
- Realice un procedimiento de respaldo de datos. Consulte “Backup y procedimientos de recuperación” para más detalles.
Rocky Linux 8/AlmaLinux 8/RHEL 8
- Detenga el servidor PFMS y el Agente Software PFMS:
/etc/init.d/pandora_server stop /etc/init.d/pandora_agent_daemon stop
- Detenga el servidor Apache web:
systemctl stop httpd.service
O bien:
/etc/init.d/httpd stop
- Haga un respaldo especial de la base de datos que sea compatible con MySQL 8:
mysqldump -u root -p pandora \ --skip-add-drop-table \ --complete-insert \ --no-create-info> backup_pandora.sql
- Haga un respaldo tal cual está hecho en MySQL 5.7 (un seguro adicional si tiene que volver a esta versión):
mysqldump -u root -p pandora> backup_pandora_5.7.sql
- Haga un respaldo del fichero de configuración de MySQL (
my.cnf
):
cp /etc/my.cnf /tmp/my.cnf.BACK
- Borre los repositorios de Percona 5:
rpm -qa | grep Percona-Server | xargs rpm -e --nodeps
- Instale los repositorios de Percona 8:
dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
- Habilite los repositorios del paso anterior:
percona-release setup ps80
- Instale Percona 8
dnf install percona-server-server
- Restablezca el fichero
my.cnf
:
mv /tmp/my.cnf.BACK /etc/my.cnf
- Modifique 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
- Si no tiene un entorno con HA, deshabilite los log binarios con la siguiente instrucción en la sección
[mysqld]
:
skip-log-bin
Véase también “Optimización y solución de problemas” para la comprobación del fichero my.cnf
.
- Inicie el servicio MySQL:
systemctl start mysql
o bien
service mysqld start
- Verifique la versión instalada con:
mysql --version
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)
Ahora utilice la línea de comando propia de MySQL y:
- Borre la base de datos
pandora
. - Cree una nueva base de datos
pandora
. - Abra la base de datos
pandora
e importe el esquema que se encuentra en la Consola web PFMS. - Importe los datos que respaldo especial compatible con MySQL 8.
mysql -u root -p pandora
DROP DATABASE pandora; CREATE DATABASE pandora; USE pandora; SOURCE /var/www/html/pandora_console/pandoradb.sql; SOURCE backup_pandora.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 ejecute los siguientes comandos:
- Desactive el plugin de de validación de password (opcional).
UNINSTALL COMPONENT 'file://component_validate_password';
- Crear el usuario de conexión si no existe:
CREATE USER "<DBUSER>"@'%' IDENTIFIED BY "<DBPASS>";
Si se quiere restringir la dirección IP de conexión a la base de datos, 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>";
- Otorgue los grants sobre la base de datos de Pandora FMS (
pandora
):
GRANT ALL PRIVILEGES ON pandora.* TO "<DBUSER>"@'%';
- Guarde los cambios y salga:
FLUSH privileges;
exit
Un vez finalizado el trabajo con la base de datos, realice los siguientes pasos:
- Inicie el servidor PFMS y el Agente Software PFMS:
/etc/init.d/pandora_server start /etc/init.d/pandora_agent_daemon start
- Inicie el servidor Apache web:
systemctl start httpd.service
O bien:
/etc/init.d/httpd start
Véase también “Optimización y solución de problemas” para la comprobación del fichero my.cnf
.