# MariaDB (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

La traduction de cet article ou section ne reflète pas le texte original.

Raison: Out of sync with English page (Discuss in Talk:MariaDB (Français)#)

Related articles

- phpMyAdmin
- Adminer
- JDBC and MySQL
- Open Database Connectivity

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.

Note: Il peut être nécessaire de supprimer les fichiers suivants depuis `/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`

Attention: Depuis mariadb 10.3.12, `/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. :-)

Categories:

- Relational DBMSs (Français)
- Pages or sections flagged with Template:Bad translation (Français)