MariaDB
MariaDB est un système de gestion de base de données relationnelles. Après le rachat de MySQL par Sun Microsystems, puis de Sun par Oracle Corporation, son fondateur (Michael Widenius) démissionne pour lancer une version alternative, sous licence GPL et 100% compatible avec MySQL. MariaDB se base sur le code source de MySQL 5.1.
Il s'agit donc d'un fork plus communautaire et ouvert, et 100% compatible MySQL. Il s'avère aussi plus performant selon certaines études. Il est utilisé comme serveur MySQL par défaut sur Debian. Sur Ubuntu cependant, c'est toujours MySQL qui est proposé par défaut.
Installation
MariaDB est disponible dans les dépôts officiels.
Pour installer le serveur MariaDB : mariadb-server ou
sudo apt install mariadb-server
PHP
Pour que PHP dialogue avec le serveur MariaDB, il ne faut pas oublier d'installer le module correspondant, qui reste php-mysql.
Différences entre MariaDB et MySQL
mysql
reste valable, ainsi que les commandes systemctl … mysql
.
Pour l'essentiel vous pouvez donc suivre la documentation de MySQL. On trouve cependant quelques différences auxquelles il faudra éventuellement faire attention.
auth_socket s'appelle unix_socket sous MariaDB
MariaDB [(none)]> SELECT user, host, plugin, password FROM mysql.user; +------+-----------+-------------+----------+ | user | host | plugin | password | +------+-----------+-------------+----------+ | root | localhost | unix_socket | | +------+-----------+-------------+----------+
Donc si vous entendez parler de l'un ou de l'autre de ces plugins, il s'agit du même comportement (qui permet d'utiliser le système d'authentification des utilisateurs Ubuntu, plutôt que des couples identifiants / mots de passe spécifiques à MySQL).
Voir en particulier la section utilisateurs adaptée ci-dessous.
unix_socket par défaut pour root dès Xenial
unix_socket est utilisé par défaut pour le compte root dès Ubuntu 16.04 Xenial.
Donc en ce qui concerne l'authentification, en particulier celle de l'utilisateur root, et l'accès à la commande mysql
en "super-administrateur", suivez la documentation de MySQL concernant Bionic plutôt que Xenial si vous utilisez MariaDB même sur Xenial.
password plutôt que authentication_string sur la table users
Dans la table users de la base de données mysql, où sont stockés les utilisateurs MySQL, les mots de passes sont renseignés dans le champs password sur MariaDB, au lieu de authentication_string sur MySQL.
Utilisateurs
La gestion des utilisateurs est pour le moment assez différente sur MariaDB et sur MySQL. La gestion des algorithmes de chiffrement n'étant pas similaire, certaines commandes de la section utilisateurs retourneront actuellement une erreur de syntaxe sur MariaDB. Voici des variantes fonctionnelles pour MariaDB.
Lister les utilisateurs
Vous pouvez lister les utilisateurs ainsi que leurs méthodes d'authentification avec la requête suivante :
SELECT user, host, plugin, password FROM mysql.user;
Créer un utilisateur
Pour créer un utilisateur MySQL identifié au moyen d'un mot de passe :
CREATE USER 'nom_utilisateur_choisi'@'localhost' IDENTIFIED BY 'mot_de_passe_solide';
Pour créer un accès MySQL à un utilisateur Ubuntu :
CREATE USER 'nom_utilisateur'@'localhost' IDENTIFIED WITH unix_socket;
Modifier l'accès d'un utilisateur
Pour modifier l'accès d'un utilisateur MySQL existant, et l'identifier par mot de passe :
SET PASSWORD FOR 'nom_utilisateur'@'localhost' = PASSWORD('mot_de_passe_solide');
Les requêtes suivantes sont nécessaires si on change la méthode d'authentification :
UPDATE mysql.user SET plugin = '' WHERE user = 'nom_utilisateur' AND host = 'localhost'; FLUSH PRIVILEGES;
Pour lier un compte MySQL existant à un utilisateur Ubuntu (il faut que les noms d'utilisateur soient les mêmes) :
UPDATE mysql.user SET plugin = 'unix_socket', password = '' WHERE user = 'nom_utilisateur' AND host = 'localhost'; FLUSH PRIVILEGES;
Supprimer un utilisateur
UTF-8 par défaut partout
MariaDB opte pour l'UTF-8 par défaut pour l'ensemble des opérations (y compris la création de base de données). Il est donc inutile de prendre cette section en compte, et le comportement général du serveur de base de données s'en trouve mieux harmonisé.
Liens
- MariaDB.org [en]
- La page Outils MySQL → Divers outils pour administrer les bases de données MySQL qui seront compatibles avec MariaDB
- La page des SGBD
Contributeurs : time132, bcag2, krodelabestiole