MariaDB, le fork libre de MySQL

Installer MariaDB sur Raspbian

Mis à jour le 29 janvier 2018 - 18 Commentaires - , , , , , , , ,
Désormais Raspbian install MariaDB par défaut au lieu de MySQL. Pour voir comment installer MySQL, regardez ici.

Lors du dernier tutoriel, nous vous avions montré comment remplacer Apache par Nginx pour votre système Raspbian, afin d’obtenir un serveur web plus rapide et moins consommateur de RAM.
Aujourd’hui, c’est pour une thématique proche que nous nous retrouvons, puisqu’il s’agit de remplacer l’ancien système de base de données MySQL par le système MariaDB pour Raspbian.

MariaDB c’est quoi ?

Comme c’était le cas pour Nginx, avant de l’installer il faudrait tout de même songer à savoir ce qu’est au juste MariaDB.
Jusqu’à présent, nous vous avions parlé de MySQL, qui est sans doute le SGBD le plus utilisé (au moins 56 % de parts de marché sur les technologies libres). Mais MySQL n’est pas seul dans le monde des SGBD libres, et de tous ses concurrents le plus sérieux est sans doute MariaDB, que ce soit par ses parts de marché (18%), par ses fonctionnalités, très proches de celles de MySQL, ou encore sa compatibilité parfaite avec MySQL, le créateur de MariaDB (Michael Widenius) étant également celui de MySQL.

Mais alors, pourquoi Michael Widenius a-t-il créé MariaDB au lieu de continuer à améliorer MySQL ?

Pour trouver la réponse à cette question, il faut faire un petit tour du côté de l’histoire de MySQL.
En 1995 Michael Widenius crée la société MySQL AB, cette dernière fait de l’open source, et va vite devenir un acteur majeur du milieu des bases de données.
En 2008, MySQL est rachetée pour 1 milliard de dollars par la société Sun Microsystems, autre acteur ayant lui aussi largement contribué dans le domaine du libre.
En 2009, Sun Microsystems est racheté par Oracle, et MySQL avec lui.
C’est à ce moment que tout va basculer. De réelles inquiétudes apparurent quant à la volonté d’Oracle de maintenir et de faire évoluer MySQL de façon libre et gratuite, Oracle proposant déjà depuis longtemps une offre concurrente, Oracle Database, payante et propriétaire plutôt à destination des grosses entreprises.
En 2009, Michael Widenius quitte donc Sun lors de son rachat, récupère les sources de MySQL (logiciel libre), lance une pétition visant à faire pression sur Oracle pour qu’ils continuent de développer MySQL.
Dans le but d’assurer que le code de MySQL reste libre, et que ce dernier ne disparaisse pas, il va monter un nouveau SGBD, fork (logiciel créé à partir du code source d’un autre) de MySQL, qu’il nommera MariaDB (du nom de sa seconde fille Maria, comme il l’avait fait avec MySQL et sa première fille My). Une fondation MariaDB sera aussi créée, afin d’assurer la gouvernance du projet.
Depuis, MariaDB se développe toujours plus chaque jour, continuant à assurer la compatibilité avec MySQL, et améliorant ce dernier.

Pourquoi choisir MariaDB ?

Finalement, MySQL se développe toujours, et est toujours libre, alors pourquoi choisir MariaDB à la place ?
Tout d’abord, parce que MySQL est distribué par Oracle, et qu’Oracle n’est pas très bien vu dans le monde du libre, préférant bien souvent une logique propriétaire, et ça c’est à la fois stupide et mal !
Ensuite, parce que MySQL ne restera peut-être pas open-source pour très longtemps, il est déjà sous double licence, libre et propriétaire.
Ensuite, parce que MariaDB est compatible a 100 % avec MySQL, et qu’il n’y a donc pas de raison de ne pas le faire.
Enfin, et c’est sans doute ce qui vous intéressera le plus, pour des questions de performances.
Si MariaDB est de plus en plus utilisé, ce n’est pas juste parce qu’il est plus libre que MySQL, mais surtout parce qu’il est plus efficace.
En effet, bénéficiant d’une grande communauté de développeurs, et de l’expérience de son créateur, MariaDB présente des performances supérieures à MySQL, tout en étant parfaitement compatible avec celui-ci. Cela signifie que pour améliorer votre site, vous n’avez qu’à installer MariaDB en lieu et place de MySQL, et vous n’aurez même pas besoin de changer le code de vos sites et applications !
MariaDB présente une réelle amélioration des performances comparé à MySQL, notamment sur les requêtes complexes. Cela s’explique entre autre par l’utilisation du moteur Aria plutôt que du moteur InnoDB, et par les efforts d’optimisation au cœur du projet MariaDB (vous pouvez trouver des comparaisons entre MariaDB et MySQL sur ce point à cette adresse).
Pour vous donner une petite idée de cette différence, voici un rapide benchmark comparant MariaDB et MySQL.

Le benchmark de MariaDB contre MySQL montre MariaDB gagnant

Comparaison des performances de MySQL et MariaDB.
En bleu, MySQL 5.5.21
En vert, MySQL 5.6.4
En rouge, MariaDB 5.3.6
Source : http://blog.mariadb.org

Et contrairement à Nginx et Apache, il n’y a pas réellement de contrepartie aux avantages de MariaDB par rapport à MySQL. Vous n’aurez à priori rien d’autre à faire que désactiver MySQL et installer MariaDB.

MariaDB est donc un choix parfait pour une Raspberry sous Raspbian, dont les ressources en RAM sont limitées, même la Raspberry Pi 3, justifient à elles seules l’installation de MariaDB, ne serait-ce que pour ses performances (et ne tenir compte que des performances, sans prendre note des autres avantages de MariaDB et du moteur Aria, de sa philosophie libre, ou encore de sa pérennité dans le temps, serait réellement une erreur).

Installer MariaDB sur Raspbian

Avec les nouvelles version de Raspbian, MariaDB est maintenant présent dans les dépôts officiels, ce qui jusqu’à présent n’était pas le cas !

Pour l’installer, rien de plus simple donc, il vous suffit de lancer la commande suivante :

sudo apt-get install mariadb-server

Si vous avez déjà MySQL installé, il est probable que le gestionnaire de paquet vous signale un conflit et vous demande s’il doit désinstallé MySQL. Dans ce cas, répondez que oui.

Pendant l’installation, MariaDB va se configurer. À vous de lui fournir le compte administrateur de la base de données.

Ceci fait, il devrait vous demander si vous êtes certain de vouloir passer sous MariaDB. Là encore, répondez oui.

Une fois l’installation terminée, vous pourrez accéder à MariaDB comme vous le faisiez avec MySQL, simplement avec la commande suivante :

[code language= »bash »]mysql -u utilisateur -p<motdepasse>[/code]

Conclusion

Voilà, vous avez maintenant un système Raspbian avec MariaDB.

Comme vous avez pu le voir, au cours de ce tutoriel nous avons souvent fait référence à Nginx, et ce n’est pas pour rien. En effet, le couple Nginx/MariaDB est plus ou moins l’équivalent moderne du couple Apache/MySQL. Nous vous encourageons donc fortement à utiliser Nginx avec MariaDB, pour un serveur web toujours plus rapide !

Sinon, vous pouvez aussi aller faire un tour sur nos tutoriels autour des accessoires ou sur la création d’un média-center !

Partager
Newsletter
Auteur :
Raspbian France
Rejoignez la communauté Raspberry Pi
Un ordinateur à 35€ déjà vendu à 10 millions d'exemplaires
ACHETEZ LA NOUVELLE RASPBERRY PI 3
Tutoriels en rapport
Installer un media-center avec OSMC sur votre Raspberry Pi ! RaspiSMS 2.0, envoyer des SMS par internet avec la Raspberry Pi Bien choisir vos accessoires pour les Raspberry Pi 3 et 2 Envoyer, gérer et recevoir des SMS avec la Raspberry Pi Installer un serveur web sur votre Raspberry (Apache + PHP + MySQL)
18 commentaires
Besoin d'aide ? Vous la trouverez plus vite sur notre forum.

  1. PatBriPerso dit :

    Une petite coquille au moment de la configuration de MariaDB.
    Dans le tuto :
    sudo ./configure.sh
    Il faut taper :
    sudo ./configure
    (sans le .sh à la fin)

    1. Je vérifierai, mais il me semble que le fichier de configuration est bien un fichier « .sh », et qu’il est donc appelable par les deux méthodes. Si ce n’est pas le cas, nous corrigerons l’article.
      Merci de nous avoir fait remonté le problème.

      1. Par convention, on utilise le ./configure pour l’outil de configuration. C’est en tout cas ce que l’on retrouve dans la très large majorité des tutoriels se servant d’un fichier de configuration bash (si ce n’est pas tous).
        Mais il me semble également que l’on peut faire un ./configure.sh

  2. PatBriPerso dit :

    La configuration de MariaDB avec la commande :
    sudo ./configure
    échoue sur mon Raspberry avec l’erreur :
    CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
    Please set them or make sure they are set and tested correctly in the CMake files:
    OPENSSL_INCLUDE_DIR
    used as include directory in directory /home/pi/mariadb-10.0.10/CMakeFiles/CMakeTmp

    Le fait qu’openssl ne soit pas installé provoque cet erreur. C’est un bug connu :
    https://mariadb.atlassian.net/browse/MDEV-5463
    D’après ce que j’en comprends, MariaDB devrait tester la présence d’openssl puis l’utiliser s’il est installé ou utiliser une librairie interne à MariaDB s’il n’est pas installé. C’est ce test qui échoue.

    J’ai tenté :
    sudo aptitude install openssl
    et cela a mis à jour openssl qui était déjà installé
    Malgré cela, l’erreur persiste quand je fais :
    sudo ./configure

    Quelqu’un a une idée ?

    1. Pour l’instant je vois pas comment régler le problème. Je vais probablement installer un MariaDB dans la semaine à venir. Je creuserais le problème à ce moment là, je n’en ai hélas pas le temps tout de suite.

  3. maarten dit :

    j’avais le meme probleme. En plus j’ai installe les libraries devloppement avec:
    sudo apt-get install libssl-dev
    Apres ça le « sudo ./configure » marchait avec succes.

    1. Merci beaucoup de l’information.
      De notre coté un membre au canada, trois autres en stage, et la Raspberry Pi de test n’est plus accessible pour l’instant (vive les livebox !).
      Du coup pas de tests possibles avant sans doute deux semaines :/.
      Je vais essayer de résoudre le problème à distance, mais j’ai de gros doute sur la faisabilité de la chose.
      En revanche, nous ferons tout de même un tuto dans assez peu de temps, probablement sur MongoDB.

    2. PatBriPerso dit :

      Je viens de refaire un essai.
      Cette fois la version de MariaDB est la 10.0.14.
      J’ai le même problème que celui que je signalais en Juin dernier.
      J’ai installé libssl-dev comme conseillé par maarten avec la commande
      $ sudo aptitude install libssl-dev
      Et cela résout le problème : « sudo ./configure » fonctionne !
      Merci maarten !

  4. Mathieu dit :

    Salut,
    Il faut penser à rajouter dans le PATH le chemin des binaires :

    Dans le fichier /etc/profile juste avant la ligne « export PATH »
    PATH=$PATH:/usr/local/mysql/bin

    et aussi dans le fichier sudoers (via la commande visudo)
    Defaults secure_path= »/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin »

    A+ et merci pour le tuto

  5. dem1980 dit :

    Merci pour ce tuto mais qui semble nécessiter quelques compléments.
    Déjà le lien pour les sources est à mettre à jour, mais je pense que chacun pourra le faire en passant par le site officiel de téléchargement des sources de mariadb.

    Ensuite, j’ai un raspbian à jour et j’ai également eu besoin d’utiliser l’astuce de maarten concernant l’installation de libssl-dev pour avoir un configure sans erreur. Merci à toi !

    Au niveau du « make », j’ai également du faire un « sudo make » pour que ca passe.
    La suite dans 4h donc 😉

  6. dem1980 dit :

    MariaDB n’est pas installé par défaut à présent sur Raspbian ?
    J’ai installé « mysql » et dans phpmyadmin il est affiché que le moteur est MariaDB…

  7. barth dit :

    Salut à tous !
    Je me suis laissé allé moi aussi a l’installation de MDB sur ma RPI, je partage donc mes galères.

    J’ai commencé par utiliser la version 10.0.15 de MDB, tout le tuto s’est bien déroulé jusqu’au ./configure qui a posé problème à plusieurs d’entres nous, j’ai résolu ceci grace a l’astuce de Maarten.
    Je poursuit l’installation et je lance mon MAKE, il démarre normalement et fais son TAF tranquille jusqu’a atteindre environ les 60% et finalement me retourner un FAIL.

    J’ai ressayé plusieurs fois mais la compilation ne voulait rien savoir…
    J’ai testé avec la version ALPHA 10.1.2, meme scénario…

    J’ai finalement utilisé la version 5.5.41 qui a mener la compilation jusqu’au bout…

    Des experiences du meme types pour vous ?

    1. Merci pour ce retour, ce tutoriel sera sans doute bientôt mis à jour.

  8. Ludovic dit :

    Salut,
    Pour ma part impossible de compiler la 10.0.15 à cause d’une erreur dans sql/rpl_parallel.cc:
    /var/tmp/portage/dev-db/mariadb-10.0.15/work/mysql/sql/rpl_parallel.cc: In member function ‘void rpl_parallel_thread::inuse_relaylog_refcount_update()’:
    /var/tmp/portage/dev-db/mariadb-10.0.15/work/mysql/sql/rpl_parallel.cc:1126:39: error: ‘class Relay_log_info’ has no member named ‘inuse_relaylog_atomic_lock’
    my_atomic_rwlock_wrlock(&ir->rli->inuse_relaylog_atomic_lock);

    J’ai tenté avec la 10.1.2 mais le problème était le même…

    finalement en appliquant ce patch:
    ————————————————————
    revno: 4541
    committer: Kristian Nielsen
    branch nick: work-10.0
    timestamp: Fri 2014-12-12 14:03:20 +0100
    message:
    Fix typo that breaks compilation on platforms without atomics.
    bzr diff -c4541

    === modified file ‘sql/rpl_parallel.cc’
    — sql/rpl_parallel.cc 2014-12-01 12:53:57 +0000
    +++ sql/rpl_parallel.cc 2014-12-12 13:03:20 +0000
    @@ -1131,9 +1131,9 @@
    inuse_relaylog *ir= accumulated_ir_last;
    if (ir)
    {
    – my_atomic_rwlock_wrlock(&ir->rli->inuse_relaylog_atomic_lock);
    + my_atomic_rwlock_wrlock(&ir->inuse_relaylog_atomic_lock);
    my_atomic_add64(&ir->dequeued_count, accumulated_ir_count);
    – my_atomic_rwlock_wrunlock(&ir->rli->inuse_relaylog_atomic_lock);
    + my_atomic_rwlock_wrunlock(&ir->inuse_relaylog_atomic_lock);
    accumulated_ir_count= 0;
    accumulated_ir_last= NULL;
    }
    ————————————————————

    ça a l’air de passer, la 10.1.2 est encore en cours de compil mais ça semble ok.

    1. Ok, merci pour l’info, nous allons prochainement éditer ce tutoriel pour mettre à jours quelques infos.

  9. Xav dit :

    sudo apt-get install python-software-properties
    sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
    deb http://repository.pi3g.com/debian/ wheezy main
    sudo wget -O /etc/apt/sources.list.d/repository.pi3g.com.list http://repository.pi3g.com/sources.list
    wget -O – http://repository.pi3g.com/pubkey | sudo apt-key add –
    apt-get update
    apt-get install mariadb-server
    pour moi cette installation a fonctionner rasperberry2 06/2015 c est la procédure pour debian sur le site maria db ,j ai mi nginx aussi webmin ,pour faire tourner wordpress (pour apprendre)
    sur les ancien rasperberry c’etait une catastrophe MySQL n’était pas adapter pour ,c est mieux maintenant ou pas sinon je pense me tourner sur Ghost blog?

Partager
Inscription à la Newsletter
Inscrivez-vous à la Newsletter.
Vous avez aimé cet article ?
Inscrivez-vous et restez informé !