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:accueil [06/02/2018 16:56] – ↷ Nom de la page changé de systemes:mariadb:start à systemes:mariadb:accueil bonnetsystemes:mariadb:accueil [30/06/2020 15:17] (Version actuelle) bonnet
Ligne 51: Ligne 51:
 </code> </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>