Cette procédure a été partagée par l'INSA de Lyon, elle est à vérifier sur un environnement de test :
1 - mise en maintenance application et arrêt service tomcat
systemctl status tomcat.service
systemctl stop tomcat.service
2 - Sauvegardes serveur BDD
mariadb-dump --single-transaction --databases ecandidat > /root/ecandidat.sql
3- modification de l'encodage
* récupération en local du dump
* remplacements dans le fichier dump ecandidat.sql
rechercher/remplacer (ctrl H avec visual studio code)
latin1 COLLATE=latin1_swedish_ci
utf8mb4 COLLATE=utf8mb4_unicode_520_ci
rechercher/remplacer
latin1 COLLATE latin1_swedish_ci
utf8mb4 COLLATE utf8mb4_unicode_520_ci
* réimport du fichier dump modifé ecandidat.sql sur serveur BDD
4 - Drop de la BDD
* Connexion sur la BDD : mysql
* drop database ecandidat;
5 - create database avec encodage
CREATE DATABASE ecandidat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
6 - * import du dump modifié, dans la base créée
mariadb < /root/ecandidat.sql
* puis vérifications
SELECT schema_name, default_character_set_name, default_collation_name FROM information_schema.schemata;
SELECT TABLE_NAME, TABLE_COLLATION FROM information_schema.tables WHERE TABLE_SCHEMA = 'ecandidat' AND TABLE_NAME = 'version';
SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA = 'ecandidat' AND TABLE_NAME = 'version';
7 - relancer tomcat
systemctl start tomcat.service
systemctl status tomcat.service
sortie mode maintenance appli
tests