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
mariadb [Le 25/02/2021, 14:45]
bcag2 [Liens] lien base de connaissance (en)
mariadb [Le 22/03/2021, 15:25] (Version actuelle)
bcag2 [Installation] note v10.1 -> v10.2
Ligne 1: Ligne 1:
 +{{tag>​sgbd mysql serveur réseau }}
  
 +----
 +
 +====== MariaDB ======
 +
 +**[[wpfr>​MariaDB]]** est un système de gestion de base de données relationnelles. Après le rachat de [[wpfr>​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 [[wpfr>​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 : [[apt>​mariadb-server]] ou
 +
 +<​code>​sudo apt install mariadb-server</​code>​
 +
 +<note tip>Lien (en) pour le passage de la v10.1 à la v10.2 sous [[:Bionic]] : https://​mariadb.com/​docs/​deploy/​upgrade-community-server-cs102-ubuntu18/​\\
 +version qui apporte notamment le support du type JSON</​note>​
 +==== PHP ====
 +
 +Pour que [[:PHP]] dialogue avec le serveur MariaDB, il ne faut pas oublier d'​installer le [[:​php#​association_avec_un_serveur_de_base_de_donnees|module correspondant]],​ qui reste [[apt>​php-mysql]].
 +
 +===== Différences entre MariaDB et MySQL =====
 +
 +<note important>​L'​ensemble du comportement du serveur MariaDB reste très similaire à celui de MySQL. La commande ''​mysql''​ reste valable, ainsi que les commandes ''​systemctl ... mysql''​.
 +
 +Pour l'​essentiel vous pouvez donc suivre la [[:​mysql|documentation de MySQL]]. On trouve cependant quelques différences auxquelles il faudra éventuellement faire attention.</​note>​
 +
 +==== auth_socket s'​appelle unix_socket sous MariaDB ====
 +
 +<code mysql>​MariaDB [(none)]>​ SELECT user, host, plugin, password FROM mysql.user;
 ++------+-----------+-------------+----------+
 +| user | host      | plugin ​     | password |
 ++------+-----------+-------------+----------+
 +| root | localhost | unix_socket |          |
 ++------+-----------+-------------+----------+
 +</​code>​
 +
 +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 ====
 +
 +//​[[:​mysql#​authentification|unix_socket]]//​ est utilisé par défaut pour le compte //root// dès [[:​xenial|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 [[:​mysql#​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 [[#​authentification|méthodes d'​authentification]] avec la requête suivante :
 +<code mysql>
 +SELECT user, host, plugin, password FROM mysql.user;
 +</​code>​
 +
 +=== Créer un utilisateur ===
 +
 +Pour créer un utilisateur MySQL identifié au moyen d'un mot de passe :
 +<code mysql>
 +CREATE USER '​nom_utilisateur_choisi'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe_solide';​
 +</​code>​
 +
 +Pour créer un accès MySQL à un utilisateur Ubuntu :
 +<code mysql>
 +CREATE USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH unix_socket;​
 +</​code>​
 +
 +=== Modifier l'​accès d'un utilisateur ===
 +
 +Pour modifier l'​accès d'un utilisateur MySQL existant, et l'​identifier par mot de passe :
 +<code mysql>
 +ALTER USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe_solide';​
 +FLUSH PRIVILEGES;
 +</​code>​
 +
 +Pour lier un compte MySQL existant à un utilisateur Ubuntu (il faut que les noms d'​utilisateur soient les mêmes) :
 +<code mysql>
 +ALTER USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH unix_socket;​
 +FLUSH PRIVILEGES;
 +</​code>​
 +
 +=== Supprimer un utilisateur ===
 +
 +Pour supprimer un utilisateur :
 +<code mysql>
 +DROP USER '​nom_utilisateur'​@'​localhost';​
 +</​code>​
 +
 +==== UTF-8 par défaut partout ====
 +
 +MariaDB opte pour l'​[[wpfr>​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 [[:​mysql#​configuration_en_utf-8|cette section]] en compte, et le comportement général du serveur de base de données s'en trouve mieux harmonisé.
 +
 +==== Requêtes ====
 +
 +L'​alias <​code>​-></​code>​ pour JSON_EXTRACT ne fonctionne pas sur MariaDB
 +
 +[[https://​mariadb.com/​kb/​en/​json_extract/​]] [en]
 +
 +
 +===== Liens =====
 +
 +  * [[http://​mariadb.org/​|MariaDB.org]] [en]
 +  * [[https://​downloads.mariadb.org/​mariadb/​repositories/​|Setting up MariaDB Repositories]] [en]
 +  * [[https://​mariadb.com/​kb/​en/​|base de connaissances en ligne]] [en] (sélectionner en haut à droite '​Search'​)
 +  * [[https://​launchpad.net/​maria|MariaDB sur launchpad]] [en]
 +  * La page [[:​mysql_outils|Outils MySQL]] -> Divers outils pour administrer les bases de données MySQL qui seront compatibles avec MariaDB
 +  * La page des [[:SGBD]]
 +
 +----
 +//​Contributeurs : [[:​utilisateurs:​time132|time132]],​ [[:​utilisateurs/​bcag2]],​ [[:​utilisateurs:​krodelabestiole]]//​
  • mariadb.txt
  • Dernière modification: Le 22/03/2021, 15:25
  • par bcag2