Mise à jour de MySQL 5.7 vers MySQL 8

Conditions préalables

Pour migrer de MySQL 5.7 à MySQL 8, vous devez être mis à jour au moins à Pandora FMS version NG 760 MR 52.

  • Ouvrez une fenêtre de terminal avec l'utilisateur root et entrez la commande suivante:
mysql --version

Vous obtiendrez une réponse similaire à la suivante:

mysql  Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using  EditLine wrapper

Rocky Linux 8/AlmaLinux 8/RHEL 8

  • Arrêtez le serveur PFMS et l'agent logiciel PFMS:
/etc/init.d/pandora_server stop
/etc/init.d/pandora_agent_daemon stop
  • Arrêter le serveur web Apache:
systemctl stop httpd.service

Ou:

/etc/init.d/httpd stop
  • Effectuez une sauvegarde spéciale de la base de données compatible avec MySQL 8:
mysqldump -u root -p pandora \
  --skip-add-drop-table \
  --complete-insert \
  --no-create-info> backup_pandora.sql
  • Effectuez une sauvegarde comme cela se fait dans MySQL 5.7 (assurance supplémentaire si vous devez revenir à cette version):
mysqldump -u root -p pandora> backup_pandora_5.7.sql
  • Sauvegarde du fichier de configuration de MySQL (my.cnf):
cp /etc/my.cnf /tmp/my.cnf.BACK
  • Supprimer les dépôts Percona 5:
rpm -qa | grep Percona-Server | xargs rpm -e --nodeps
  • Installer les dépôts Percona 8:
dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
  • Activez les référentiels de l'étape précédente:
percona-release setup ps80
  • Percona 8 doit être installé
dnf install percona-server-server
  • Restaurer le fichier my.cnf :
mv /tmp/my.cnf.BACK /etc/my.cnf
  • Modifiez le fichier my.cnf pour supprimer le paramètre 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 vous n'avez pas d'environnement HA, désactivez les binaires log avec la commande suivante dans la section [mysqld]:
skip-log-bin

Voir également «Optimisation et dépannage» pour le contrôle des fichier my.cnf.

  • Démarrez le service MySQL:
systemctl start mysql

Ou:

service mysqld start
  • Vérifier la version installée avec:
mysql --version

Vous obtiendrez une réponse similaire à la suivante:

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

Utilisez maintenant la ligne de commande propre à MySQL et:

  • Supprimez la base de données pandora.
  • Créez une nouvelle base de données pandora.
  • Ouvrez la base de données pandora et importez le schéma trouvé dans la Console WEB PFMS.
  • Importez des données qui sont des sauvegardes spéciales compatibles avec 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;
  • Les permissions nécessaires (grants) doivent être ajoutées à nouveau; si vous n'êtes pas connecté à mysql en tant qu'utilisateur root (remplacez < password > par le mot de passe correspondant) exécutez:
mysql -uroot -p < password >
  • Une fois connecté en tant que root, exécutez les commandes suivantes :
  • Désactivez la validation du mot de passeplugin (optionnel).
UNINSTALL COMPONENT 'file://component_validate_password';
  • Créez l'utilisateur de connexion s'il n'existe pas:
CREATE USER "<DBUSER>"@'%' IDENTIFIED BY "<DBPASS>";

Si vous souhaitez restreindre l'adresse IP de connexion à la base de données, remplacez le % par l'adresse IP de la source de connexion.

  • Attribuez le mot de passe natif password pour mysql :
ALTER USER "<DBUSER>"@'%' IDENTIFIED WITH mysql_native_password BY "<DBPASS>";
  • Accordez les subventions sur la base de données de Pandora FMS (pandora):
GRANT ALL PRIVILEGES ON pandora.* TO "<DBUSER>"@'%';
  • Enregistrez vos modifications et quittez:
FLUSH privileges;
exit

Pour modifier le type d'authentification dans MySQL 8, voir la rubrique «Configuration de la méthode d'authentification SHA dans MySQL».

Une fois que vous avez terminé de travailler avec la base de données, effectuez les étapes suivantes:

  • Démarrez le serveur PFMS et l'agent logiciel PFMS:
/etc/init.d/pandora_server start
/etc/init.d/pandora_agent_daemon start
  • Démarrez le serveur web Apache:
systemctl start httpd.service

Ou:

/etc/init.d/httpd start

Voir également «Optimisation et dépannage» pour le contrôle des fichiers my.cnf.

Retour à l'index de la documentation du Pandora FMS