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
- Effectuez une procédure de sauvegarde des données. Voir «Procédures de sauvegarde et de restauration» pour plus de détails.
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ètrequery_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
.