Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
mariadb [Le 21/12/2013, 16:08] Flix [Ajouter le dépôt] |
mariadb [Le 31/08/2022, 23:38] moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
====== MariaDB ====== | ====== 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, le fondateur de MySQL (Michael Widenius) démissionne pour lancer une version alternative, sous licence GPL et 100% compatible avec MySQL. | + | **[[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. | MariaDB se base sur le code source de MySQL 5.1. | ||
- | --- //Source: [[http://fr.wikipedia.org/wiki/MariaDB|Wikipédia]]// | + | 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 ===== | ===== Installation ===== | ||
- | Le site https://downloads.mariadb.org/mariadb/repositories/ nous fournit un dépôt avec des paquets tout faits. | + | MariaDB est disponible dans les dépôts officiels. |
- | ==== Ajouter le dépôt ==== | + | Pour installer le serveur MariaDB : [[apt>mariadb-server]] ou |
- | === A partir de Lucid - Ubuntu 10.04 === | + | |
+ | <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 bash> | + | <code mysql>MariaDB [(none)]> SELECT user, host, plugin, password FROM mysql.user; |
- | sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1BB943DB | + | +------+-----------+-------------+----------+ |
- | echo deb http://ftp.igh.cnrs.fr/pub/mariadb//repo/5.5/ubuntu $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/MariaDB.list | + | | user | host | plugin | password | |
+ | +------+-----------+-------------+----------+ | ||
+ | | root | localhost | unix_socket | | | ||
+ | +------+-----------+-------------+----------+ | ||
</code> | </code> | ||
- | <note> | + | 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). |
- | Si vous utilisez un OS basé sur ubuntu (ex : Linux mint). Il est possible que le paquet ne soit pas présenté pour cette version. Il sera alors necessaire d'adapter le chemin. Soit en éditant le fichier /etc/apt/sources.list.d/MariaDB.list, soit en modifiant directement la ligne de commande. | + | Voir en particulier la section //[[#utilisateurs]]// adaptée ci-dessous. |
- | Dans mon cas sous linux mint olivia, j'ai édité le fichier. | + | ==== unix_socket par défaut pour root dès Xenial ==== |
- | avant : <code bash> deb http://ftp.igh.cnrs.fr/pub/mariadb//repo/5.5/ubuntu olivia main </code> | + | //[[:mysql#authentification|unix_socket]]// est utilisé par défaut pour le compte //root// dès [[:xenial|Ubuntu 16.04 Xenial]]. |
- | après : <code bash> deb http://ftp.igh.cnrs.fr/pub/mariadb//repo/5.5/ubuntu precise main </code> | + | 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. |
- | </note> | + | ==== password plutôt que authentication_string sur la table users ==== |
- | ==== Recharger la liste des paquets ==== | + | |
- | <code bash> | + | 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. |
- | sudo apt-get update | + | |
+ | |||
+ | ==== 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> | </code> | ||
- | ==== Installer les paquets ==== | + | === Créer un utilisateur === |
- | Pour installer le serveur MariaDB : [[apt>mariadb-server]] ou | + | Pour créer un utilisateur MySQL identifié au moyen d'un mot de passe : |
- | <code bash> | + | <code mysql> |
- | sudo apt-get install mariadb-server | + | CREATE USER 'nom_utilisateur_choisi'@'localhost' IDENTIFIED BY 'mot_de_passe_solide'; |
</code> | </code> | ||
- | Pour installer le client MariaDB : [[apt>mariadb-client]] ou | + | |
- | <code bash> | + | Pour créer un accès MySQL à un utilisateur Ubuntu : |
- | sudo apt-get install mariadb-client | + | <code mysql> |
+ | CREATE USER 'nom_utilisateur'@'localhost' IDENTIFIED WITH unix_socket; | ||
</code> | </code> | ||
- | ===== PHP ===== | + | === 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] | ||
- | Pour que PHP5 dialogue avec le serveur MariaDB, il ne faut pas oublier d'installer le paquet [[apt>php5-mysql]]. | ||
===== Liens ===== | ===== Liens ===== | ||
- | * [[http://mariadb.org/|MariaDB.org]] [en] | + | * [[https://mariadb.org/|MariaDB.org]] [en] |
* [[https://downloads.mariadb.org/mariadb/repositories/|Setting up MariaDB Repositories]] [en] | * [[https://downloads.mariadb.org/mariadb/repositories/|Setting up MariaDB Repositories]] [en] | ||
- | * [[http://ourdelta.org/ubuntu|OurDelta]] [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] | * [[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 [[:mysql_outils|Outils MySQL]] -> Divers outils pour administrer les bases de données MySQL qui seront compatibles avec MariaDB | ||
Ligne 64: | Ligne 120: | ||
---- | ---- | ||
- | //Contributeur : [[:utilisateurs:time132|time132]] Le 12/11/2010, 16:03// | + | //Contributeurs : [[:utilisateurs:time132|time132]], [[:utilisateurs/bcag2]], [[:utilisateurs:krodelabestiole]]// |