Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== 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>