Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
systemes:mariadb:start [06/02/2018 16:55] – ↷ Page déplacée et renommée de systemes:mariadb à systemes:mariadb:start bonnetsystemes:mariadb:accueil [30/06/2020 15:17] (Version actuelle) bonnet
Ligne 1: Ligne 1:
 +====== MariaDB ======
 +MariaDB est une alternative plus optimisée à MySQL.
  
 +===== Migration MariaDB 5.5 à MariaDB 10.2 =====
 +La version 5.5 (stable) est la version par défaut fournie sur toutes les distributions. Toutefois certaines fonctionnalités nécessite une version plus récente.
 +
 +La migration vers la dernière version peut être effectuée avec la procédure suivante :
 +
 +=== Sauvegarde ===
 +Réaliser une sauvegarde complète de la base de donnée.
 +
 +<file bash>
 +mysqldump --all-databases
 +</file>
 +
 +=== Arrêt des services ===
 +Arrêter l'ancien service et le désactiver.
 +
 +<file bash>
 +systemctl stop mariadb
 +systemctl disable mariadb
 +</file>
 +
 +=== Installation du dépôt ===
 +Installer le dépôt comformément à la documentation de MariaDB [[https://downloads.mariadb.org/mariadb/repositories/]].
 +
 +Exemple avec Centos7, il faut mettre dans le dossier /etc/yum.repo.d/mariadb.repo :
 +
 +<file ini mariadb.repo>
 +# MariaDB 10.2 CentOS repository list - created 2018-02-06 15:53 UTC
 +# http://downloads.mariadb.org/mariadb/repositories/
 +[mariadb]
 +name = MariaDB
 +baseurl = http://yum.mariadb.org/10.2/centos7-amd64
 +gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
 +gpgcheck=1
 +</file>
 +
 +=== Installation packages ===
 +Mettre à jour les packages :
 +
 +<code bash>
 +yum install MariaDB-Server
 +</code>
 +
 +=== Vérification ===
 +Vérifier le bon fonctionnement de MariaDB avec la commande :
 +
 +<code bash>
 +systemctl status mysql
 +</code>
 +
 +===== Charset =====
 +==== Niveau serveur ====
 +Le charset par défaut est dans les variables MariaDB :
 +<code mysql>
 +SET character_set_server = 'utf8';
 +SET collation_server = 'utf8_general_ci';
 +</code>
 +
 +==== Niveau Database ====
 +Il peut être défini à la création de la base, ou bien modifié par la suite avec la commande :
 +<code mysql>
 +ALTER DATABASE czech_slovak_names COLLATE = 'utf8_general_ci';
 +</code>
 +
 +==== Niveau des tables ====
 +
 +<code mysql>
 +ALTER TABLE MyTable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
 +</code>
 +
 +Le script suivant peut être utile pour changer toutes les tables d'une base de donnée :
 +<file bash update.sh>
 +#!/bin/bash
 +
 +DATABASE="myDatabase"
 +CHARSET="utf8"
 +COLLATE="utf8_general_ci"
 +
 +IFS=$'\n'
 +QUERY="SELECT CONCAT('ALTER TABLE \`$DATABASE\`.\`', TABLE_NAME,'\` CONVERT TO CHARACTER SET $CHARSET COLLATE $COLLATE;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$DATABASE' AND TABLE_TYPE='BASE TABLE' AND TABLE_COLLATION!='$COLLATE'"
 +
 +for MYSQL_CMD in `mysql -B -e "$QUERY"`; do
 +  echo "$MYSQL_CMD"
 +  mysql -B -e "$MYSQL_CMD"
 +done
 +</file>