MySQL et MariaDB : histoire, forks et utilisation pratique
Le développement a commencé en 1994 lorsque SQL a été intégré au système Unireg existant. La première version officielle est apparue en décembre 1995. MySQL a rapidement gagné du terrain auprès des applications web et des sites web dynamiques.
2. Les rachats et la naissance de MariaDB
En 2001, MySQL Finland Ab a attiré des investisseurs et a nommé Mårten Mickos au poste de CEO. En 2003, l'entreprise a conclu un accord avec SAP et a publié MaxDB, une base de données pour les applications professionnelles.Une étape technologique cruciale a suivi en 2005 : Oracle a racheté le moteur de stockage InnoDB. InnoDB assure les transactions, l'intégrité référentielle et la récupération après incident — des fonctions essentielles pour des bases de données fiables. Ce rachat a donné à Oracle le contrôle d'un composant central d'une alternative open source, ce qui a ensuite constitué une cause directe du fork.
En mars 2008, Sun Microsystems a racheté MySQL AB pour 1 milliard de dollars. L'annonce a eu lieu le 16 janvier 2008, la finalisation le 26 février 2008. Le rachat a été de courte durée : en avril 2009, Oracle a annoncé le rachat de Sun Microsystems, y compris MySQL.
La communauté open source craignait qu'Oracle ne freine le développement. Michael « Monty » Widenius, l'un des développeurs d'origine de MySQL, a donc lancé en 2009 avec d'autres développeurs clés un fork : MariaDB. La première version, MariaDB 5.1.38, est apparue le 29 octobre 2009.
3. MariaDB comme successeur indépendant
MariaDB est techniquement un successeur direct de MySQL et entièrement compatible. Il conserve l'esprit open source et reste indépendant des intérêts commerciaux.En 2012, la MariaDB Foundation a été créée pour garantir le développement indépendant. En octobre 2014, SkySQL Ab a été renommée MariaDB Corporation, ce qui a professionnalisé le support commercial. En janvier 2016, Monty Widenius est devenu CTO de MariaDB Corporation.
MariaDB offre des fonctionnalités supplémentaires par rapport à MySQL : colonnes virtuelles, colonnes dynamiques, de meilleures capacités analytiques et de nouveaux moteurs de stockage comme Aria et ColumnStore.
4. MySQL et MariaDB dans Docker
Dans les pratiques de développement modernes, MySQL et MariaDB fonctionnent souvent dans des conteneurs. Docker Compose crée un environnement de base de données cohérent pour le développement, les tests et la production.Voici un exemple pour une pile Laravel avec PHP-FPM, Nginx et MariaDB :
version: '3.8'</p><p>services:
nginx:
image: nginx:1.25-alpine
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php-fpm</p><p>php-fpm:
image: php:8.2-fpm
volumes:
- ./src:/var/www/html</p><p>mariadb:
image: mariadb:11.2
environment:
MARIADB_DATABASE: laravel
MARIADB_USER: laravel
MARIADB_PASSWORD: secret
MARIADB_ROOT_PASSWORD: rootsecret
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql</p><p>volumes:
db_data:Démarrez la pile avec :
docker compose up -d
La base de données est alors accessible sur `localhost:3306` avec l'utilisateur `laravel` et le mot de passe `secret`.
5. Clients graphiques pour MySQL et MariaDB
DBeaver Community
DBeaver Community est un outil de base de données multi-plateforme gratuit qui prend en charge MySQL, MariaDB, PostgreSQL, SQLite et de nombreuses autres bases de données. Il est basé sur Eclipse et offre une interface complète pour la gestion de bases de données, les requêtes SQL et l'analyse de données.Installation via Flatpak :
flatpak install flathub io.dbeaver.DBeaverCommunity
Sequeler
Sequeler est un client SQL convivial pour MySQL, MariaDB, PostgreSQL et SQLite. Il offre une interface graphique pour les connexions, les commandes SQL, les tables et les données. Installation via Flatpak :flatpak install flathub com.github.alexkdeveloper.sequeler
SQuirreL SQL Client
SQuirreL SQL Client est un client SQL basé sur Java qui fonctionne avec toute base de données compatible JDBC, y compris MySQL et MariaDB. Il prend en charge les pilotes de différentes bases de données et convient aux développeurs qui travaillent avec plusieurs plateformes de bases de données.6. MySQL et MariaDB dans la surveillance
Les deux systèmes fonctionnent également dans la gestion d'infrastructure. Cacti, un outil de surveillance basé sur le web, utilise MariaDB pour stocker et visualiser les performances réseau. Il nécessite un serveur web et une base de données ; MariaDB est l'une des options prises en charge.Installation de Cacti avec MariaDB sur Debian 12 :
sudo apt update
sudo apt install mariadb-server cactiPendant l'installation, vous configurez la base de données pour Cacti. L'interface web est ensuite accessible via `http://localhost/cacti`.
7. MySQL versus MariaDB : différences pratiques
Le choix entre MySQL et MariaDB dépend du cas d’utilisation. MariaDB est un remplacement direct de MySQL et offre des moteurs de stockage supplémentaires ainsi que de meilleures performances pour certaines charges de travail. MySQL dispose toutefois d’un support commercial plus étendu via Oracle et d’une plus longue expérience dans les environnements d’entreprise.Pour les nouveaux projets sous Linux avec des logiciels open source, MariaDB est souvent le choix par défaut, car il poursuit le développement mené par la communauté. Pour les infrastructures existantes avec des licences MySQL ou un support Oracle spécifique, MySQL reste l’option sûre.
Vérification
Vérifiez si votre base de données tourne et quelle version est active :mysql --version
Pour MariaDB :
mariadb --version
Établissez une connexion de test :
mysql -u root -p -e "SELECT VERSION();"
Dans Docker :
docker compose exec mariadb mariadb -u root -p -e "SELECT VERSION();"
Problèmes fréquents
Problème : Impossible de se connecter à MySQL/MariaDB depuis une autre machine. Solution : vérifiez si la base de données écoute sur toutes les interfaces. Dans `/etc/mysql/mariadb.conf.d/50-server.cnf`, définissez `bind-address = 0.0.0.0` et redémarrez le service :sudo systemctl restart mariadb
Problème : La sauvegarde MySQL ne fonctionne plus après la migration vers MariaDB. Solution : utilisez `mariadb-dump` au lieu de `mysqldump` pour une compatibilité totale :
mariadb-dump -u root -p database > backup.sql
Problème : Les tables InnoDB sont endommagées après un crash. Solution : démarrez MariaDB avec `innodb_force_recovery=1` dans `/etc/mysql/mariadb.conf.d/50-server.cnf`, sauvegardez les données et restaurez la base :
sudo systemctl stop mariadb
sudo mysqld --innodb-force-recovery=1L’histoire de MySQL montre comment un projet open source peut devenir un standard industriel et comment un fork comme MariaDB peut poursuivre les valeurs d’origine — le choix entre les deux détermine non seulement votre base de données, mais aussi votre position au sein de l’écosystème plus large.