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

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 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
  • 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.

CentOS 7

CentOS 7 pronto alcanzará su fin de ciclo de vida (EOL). Esta documentación se conserva por propósitos históricos.

  • 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:
yum 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
yum install percona-server-server
  • Restablezca el fichero my.cnf:
mv /tmp/my.cnf.BACK /etc/my.cnf
  • Modifique 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
  • 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, introduzca la contraseña de usuario root 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 respaldó de manera 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

Volver al índice de documentación de Pandora FMS