MariaDB (Français)
MariaDB est un système de gestion de base de données distribué sous licence GPLv2. Il s'agit ni plus ni moins d'un fork de MySQL initié par le créateur même de MySQL, Michael "Monty" Widenius, suite au rachat des technologies de Sun Microsystems par Oracle.
Ce système se veut performant et totalement compatible avec MySQL qu'il remplace désormais sous Arch:
- les corrections de bugs critiques de MySQL s'appliquent à MariaDB ;
- équivalence des bibliothèques et correspondance exacte à l'API et aux commandes de MySQL.
Installation
Vous pouvez installer le paquet mariadb avec Pacman.
pacman -S mariadb
À la suite de quoi, les tables devraient être mises en place automatiquement. Si ce n'est pas le cas, réinstallez-les:
/usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Démarrer le service pour la session en cours:
systemctl start mysqld
L'établir au démarrage de votre système:
systemctl enable mysqld
Passer de Oracle MySQL à MariaDB
Si MySQL est installé sur votre machine, pacman demandera à désinstaller mysqlAUR, mysql-clients et libmysqlclient.
/var/lib/mysql/
: ib_logfile0
, ib_logfile1
et aria_log_control
avant de redémarrer le service dans la procédure suivante.Les étapes suivantes vous permettront de réaliser la transition de votre base MySQL vers votre base MariaDB:
#arrêt du serveur MySQL systemctl stop mysqld #remplacement de MySQL par MariaDB pacman -S mariadb libmariadbclient mariadb-clients #démarrage de mariadb (pas d'erreur, oui le service s'appelle mysqld ^^) systemctl start mysqld #mise à jour de vos tables (le mot de passe est celui de votre base de données) mysql_upgrade -p
Configuration
Il est fortement recommandé de sécuriser l'installation après le démarrage du service, à l'aide de l'outil fourni:
mysql_secure_installation
De là vous pouvez vous connecter au serveur avec ce compte:
mysql -u root -p
Ajouter un utilisateur
Cela requiert deux étapes:
- créer l'utilisateur
- accorder les droits pour cet utilisateur sur telle ou telle base
Dans l'exemple ci-dessous, l'utilisateur monty
identifié par le mot de passe some_pass
se voit accorder tous les droits sur la base de données mydb
:
MariaDB [(none)]> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON mydb.* TO 'monty'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit
Fichiers de configuration
Les options sont lues depuis les fichiers suivants (par ordre de préférence et selon la portée voulue, cf. documentation officielle (en)):
/etc/mysql/my.cnf
~/.my.cnf
/etc/mysql/my.cnf
charge également les fichiers de configuration depuis le répertoire /etc/mysql/my.cnf.d/
, ce qui permet de répartir les options de manière plus lisible (client/serveur, etc.).Maintenance
Après montée de version de mariadb
Après une mise à jour majeure de mariadb, il est recommandé de mettre à jour les bases de données (pacman vous l'indiquera certainement):
mysql_upgrade -u root -p
Vérifier, réparer et optimiser les bases
L'utilitaire mysqlcheck
, livré avec mariadb permet ces différentes opérations. Voir son manuel pour plus d'informations.
Pour vérifier l'ensemble des tables des bases de données:
mysqlcheck --all-databases -u root -p -c
Pour analyser l'ensemble des tables des bases de données:
mysqlcheck --all-databases -u root -p -a
Pour réparer l'ensemble des tables des bases de données:
mysqlcheck --all-databases -u root -p -r
Pour optimiser l'ensemble des tables des bases de données:
mysqlcheck --all-databases -u root -p -o
Sauvegarde
Il existe différents moyens de sauvegarder la base de données. L'un d'eux, sans compression est :
$ mysqldump --single-transaction --flush-logs --master-data=2 --all-databases -u root -p > toutes_mes_db.sql
Ou avec compression :
$ mysqldump --single-transaction --flush-logs --master-data=2 --all-databases -u root -p | gzip > toutes_mes_db.sql.gz
Pour le reste, les observations liées à MySQL ainsi que son utilisation et, bien sûr son manuel, sont donc parfaitement compatibles et valables. :-)