PHPMyAdmin est devenu un outil incontournable pour gérer ses bases de données MySQL. Disponible chez la plupart des hébergeurs Web, il est de plus très simple à utiliser. Découvrons tout de même quelques alternatives gratuites.

Pourquoi autre chose que PHPMyAdmin ?

Le développement de PHPMyAdmin a commencé en 1998. Il est devenu très populaire rapidement, du fait de sa capacité à gérer des bases de données MySQL aisément. La communauté d'utilisateurs a rendu populaire cet outil, qui est disponible chez pratiquement tous les hébergeurs Web.

Cependant, PHPMyAdmin n'est pas seul dans ce secteur. Beaucoup d'utilisateurs trouvent, qu'avec le temps, PMA s'est allourdi et que les changements opérés n'étaient pas satisfaisants. Utilisation d'Ajax abusive, des lenteurs ressenties de plus en plus fréquentes, des configurations pas forcément simples à faire, etc...
De plus, du fait de sa grande popularité, PHPMyAdmin est très utilisé, ce qui fait de lui une cible de choix pour des personnes malveillantes.

Les prétendants "Web"

Je vais tout d'abord vous présenter des outils dits "légers". Ce sont des applications Web, à la manière de PMA, que vous devrez déposer/installer sur votre serveur.

Adminer

Anciennement PHPMinAdmin, Adminer dispose d'une interface ultra simpliste mais qui va directement à l'essentiel : on gère des bases de données, des tables et des champs. Pas de fioritures, il fonctionne parfaitement et est très léger.

Ecrit en PHP, il est composé uniquement d'un seul fichier de 232 Ko (pour la version complète) ! D'autres versions sont disponibles : vous pouvez utiliser simplement Adminer en anglais ET pour MySQL uniquement. Résultat : 94 Ko !

Parallèlement, PHPMyAdmin pèse pas loin de 40 Mo !

D'après Adminer, ses qualités par rapport à PMA sont :

  • une meilleure expérience utilisateur
  • un meilleur support des fonctionnalités MySQL
  • des performances accrues
  • une meilleure sécurité

Egalement, en sus de MySQL, Adminer comprend des bases de données SQLite, PostreSQL, MS SQL, Firebird, ElasticSearch, SimpleDB, MongoDB et Oracle ! Cependant, Adminer ne sait exporter des résultats qu'en SQL ou CSV ; là où PMA propose beaucoup plus de formats de sortie (XML, LaTeX, ODS, ...).

Le site d'Adminer propose un tableau comparatif avec PHPMyAdmin. Il y a quelques piques lancés à PMA d'ailleurs ("phpMyAdmin skin requires creating over 100 icons.") !

D'ailleurs, Adminer sait modifier des procédures stockées, les triggers.

Bien que ce soit un de ses arguments principaux, il est possible de rendre Adminer un peu plus joli avec l'ajout de feuille de style CSS.

Les fonctionnalités d'Adminer peuvent être étendues grâce à des plugins. Il en existe une pléthore :

  • possibilité de masquer certaines bases de données
  • export en JSON, XML, ...
  • lors d'un ajout d'une date, affichage d'un calendrier
  • ...

Adminer est donc une alternative très sérieuse à PMA : extra léger et complet en fonctionnalités !

DbNinja

Egalement écrit en PHP, DbNinja est une alternative entre PHPMyAdmin et Adminer. Il est très léger (environ 1 Mo) et son interface est très plaisante.

Un des points forts de DbNinja est qu'il peut se connecter à plusieurs serveurs. Ainsi, depuis le menu "DbNinja > Settings > MySQL Hosts", vous pouvez ajouter autant de serveurs MySQL que vous souhaitez.

De plus, l'interface de DbNinja sépare les actions réalisées dans des onglets distincts. Vous pouvez donc par exemple avoir un onglet affichant la structure d'une table, un autre contenant le "Query Editor", etc...

Une autre fonctionnalité bien plaisante est, qu'avec DbNinja, vous pouvez comparer 2 bases de données ! Vous drag'n'droppez la base "source" que vous comparez avec celle de production par exemple. L'outil vous affiche les différences dans les structures de tables, les triggers, vues, ...

Vous pouvez bien entendu gérer les utilisateurs MySQL, leurs bases de données associées et autres privilèges. Les triggers sont également de la partie et DbNinja propose même un log en temps réel des actions effectuées.

L'export des données est possible en CSV, Excel ou JSON, en plus du SQL bien sûr.

DbNinja est réellement un outil très puissant et agréable à utiliser au quotidien pour gérer ses bases de données et interagir avec leurs données ! Je vous conseille vraiment de l'essayer !

SQL Buddy

Egalement très simple à installer (on télécharge un zip qu'on extrait et on dépose le contenu sur le serveur), SQL Buddy vous permet de gérer le contenu de vos bases de données très simplement.

L'interface est simple, on retrouve les bases de données à gauche à la manière d'un PHPMyAdmin. On accède aux structures et contenus des tables à partir du menu situé en haut de l'outil. Vous pouvez exécuter des requêtes, importer ou exporter des données. Concernant ce dernier, vous disposez des formats SQL ou CSV uniquement.

Personnellement, quitte à avoir un outil épuré et relativement léger en fonctionnalités, autant utiliser Adminer ! Je trouve SQL Buddy trop simpliste et l'interface peu ergonomique.

MyWebSQL

MyWebSQL est un outil Web dont l'interface semble très travaillée.

Assez léger par rapport à PHPMyAdmin, MyWebSQL est également écrit en PHP. A l'intérieur, vous retrouvez bien entendu la liste des tables composant une base de données en particulier. Les tables, vues, procédures, fonctions, déclencheurs sont séparés sous forme d'arborescence et on s'y retrouve très facilement.

Dans la partie centrale, les données sont structurées sous forme de tableau interactif agréable à utiliser. La création de table est également sympa à prendre en main !

MyWebSQL permet de gérer les utilisateurs MySQL, consulter la liste des processus lancés. Des thèmes sont disponibles et l'outil est traduit dans près de 40 langues !

phpMiniAdmin

Avec phpMiniAdmin, on est dans le strict minimum pour interagir avec une base de données ! En effet, il n'est composé que d'un seul fichier de 36 Ko !

Certes, le code n'est pas des plus propre, mais c'est le prix à payer pour avoir un fichier le plus léger possible...

Concernant ses fonctionnalités, l'outil permet d'exécuter des requêtes, d'exporter et d'importer, de consulter les tables d'une base de données et leurs contenus. C'est light mais suffisant pour des tâches simples.

SIDU

Suite au commentaire de JCE76350, je rajoute cet outil.

SIDU signifie "Select Insert Delete Update". C'est un client Web écrit en PHP qui comprend les bases de données MySQL, PostgreSQL, SQLite et CUBRID.

Très léger (moins de 1 Mo), SIDU permet de gérer de manière vos bases de données, tables ou autres vues. L'interface, assez simple mais pleinement fonctionnelle, est composée d'une partie latérale où se retrouvent vos bases, sous forme d'arborescence. La partie centrale permet de visualiser les données des tables et de réaliser diverses actions telles que l'export des données, leur modification, la création, etc...

L'éditeur de requête est toujours affiché, ce qui est agréable.

Point très intéressant, SIDU propose un historique des requêtes exécutées et permet de les ré-exécuter.

La gestion des utilisateurs et de leurs privilèges est également de la partie.

Les alternatives logicielles

Il n'y a pas que des outils Web qui peuvent concurrencer PHPMyAdmin ! De multiples solutions logicielles existent, je vous présente celles que j'ai retenu.

MySQL Workbench

MySQL Workbench est l'outil créé par la société qui détient MySQL : Oracle. Disponible sur toutes les plateformes (Windows, Mac OS, Linux), il est le plus complet pour gérer ses bases de données et même les modéliser.

En effet, MySQL Workbench intègre un concepteur de modèle de données (MCD) qui permet de créer le schéma et d'exporter le script SQL pour la création des tables.

Vous pouvez même créer un MCD à partir d'une base de données (reverse engineering) ! Pratique quand vous devez bosser sur un projet qui n'a aucun document relatif à la base de données...

Il fait tout ce qu'un outil de gestion de base de données peut faire : liste des base de données, tables, vues, triggers, fonctions, construction de requêtes, administration des utilisateurs et droits, exports, imports, ...

Vous pouvez avoir autant de serveurs que vous souhaitez. Des outils d'administration sont intégrés au logiciel. Bref, tout est là pour administrer, concevoir et gérer des bases de données.

En conclusion, MySQL Workbench est la référence des logiciels de gestion de base de données.

HeidiSQL

HeidiSQL est un logiciel Open-Source disponible sur Windows uniquement. Cependant, il est possible de l'utiliser sur une machine Unix avec Wine.

L'outil est également disponible en version portable (c'est-à-dire pas besoin de l'installer) et sur Chocolatey !

HeidiSQL peut se connecter à des serveurs MySQL, SQL Server et PostgreSQL. Il permet de se connecter à plusieurs serveurs en paramétrant des profils de connexion.

L'interface est classique : à gauche, l'arborescence des bases de données, contenant les tables, vues, procédures stockées, fonctions et déclencheurs. En bas de logiciel, on retrouve les actions réalisées.

Dans la partie centrale, on a plusieurs onglets qui correspondent au serveur (liste des bases, variables, état, processus), au contenu d'une table, et enfin aux requêtes. Vous pouvez ouvrir autant d'onglet "requête" que vous souhaitez !

D'ailleurs, dans un onglet "requête", vous avez à votre droite une aide concernant les fonctions MySQL, la liste des colonnes de la table active et l'historique des requêtes exécutées.

Sur HeidiSQL, vous pouvez bien entendu réaliser toutes les manipulations de création de tables, copie de table, création de champ, import, etc...

Concernant les exports, vous pouvez exporter la structure et les données de plusieurs tables, ainsi que les vues, procédures stockées et déclencheurs.
Vous pouvez également exporter les résultats d'une requête. Deux méthodes s'offrent à vous : copie dans le presse-papier ou dans un fichier. Les formats de sortie sont nombreux : CSV, XML, SQL, LaTeX, PHP, ...

La partie administration n'a pas été oubliée, vous pouvez gérer les utilisateurs ainsi que leurs droits.

La personnalisation est également de la partie : choix de la mise en forme des requêtes (police, taille, couleurs, ...), apparence des données, édition des raccourcis clavier.

Très complet, je ne peux pas vous détailler toutes les fonctionnalités d'HeidiSQL ! Le plus simple est que vous le testiez par vous-même ! Il s'apparente beaucoup à DbNinja en terme de possibiltés d'interactions avec des bases de données et d'interface.

DBeaver

Disponible sur Mac OS, Windows et Linux, DBeaver est un client SQL écrit en JAVA supportant beaucoup de drivers : MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, Teradata, MongoDB, Cassandra, Redis et bien d'autres encore...
Il est de plus disponible en version portable (sans installation).

Gratuit et open-source (licence GPL), DBeaver contient un gestionnaire de connexions afin de permettre à l'utilisateur de se connecter à plusieurs serveurs.

L'interface est semblable à Eclipse. Vous retrouvez les serveurs, bases de données, tables/vues/index/procédures/déclencheurs/fonctions sur le panneau de gauche. Ici, vous avez également accès à la gestion des utilisateurs et aux variables de votre serveur.

La partie centrale contient les tables/vues et autres de votre base de données. Un double-clic sur une table fait afficher sa structure, ses données, clés étrangères, index, etc...

DBeaver génère également un diagramme de vos tables ! J'ai testé sur une base de données assez complexe contenant beaucoup de relations, c'est assez performant ! Ca rejoint le Reverse Engineering de MySQL Workbench.

Le gestionnaire de requête est très complet. L'autocomplétion fonctionne parfaitement (une aide sur les mots-clés est même affichée en temps réel), le tableau des résultats regorge de fonctionnalités (filtres supplémentaires, tris, affichage "text" ou grille), ...

Vous pouvez sauvegarder vos requêtes (appelés Scripts), ils seront présents dans la partie gauche, sous l'arborescence des serveurs/bases de données ou dans l'onglet "Projects".

J'ai trouvé la partie concernant les exports un peu trop légère comparé aux nombreuses fonctionnalités que propose l'outil.

Totalement personnalisable (thème, police et couleurs dans l'éditeur de requêtes, système de templates, etc...), DBeaver est ultra complet en ce qui concerne les drivers de connexions aux serveurs de bases de données. Ses fonctionnalités sont également très nombreuses et l'outil est vraiment bien pensé.

Conclusion

Personnellement, j'utilise encore PHPMyAdmin pour faire quelques tâches sur des bases MySQL car je suis habitué à cet outil. Ca fait maintenant plus de 10 ans que je l'utilise, j'y ai mes petites habitudes pas faciles à changer... Cependant, je commence à utiliser DbNinja de plus en plus souvent car j'apprécie le fait d'avoir plusieurs serveurs et la notion d'onglets.

A côté, j'utilise HeidiSQL en client "lourd", pour écrire mes requêtes et MySQL Workbench pour concevoir mes modèles de données.

En écrivant cet article, j'ai découvert DBeaver. C'est pour moi une excellente surprise et fait concurrence à HeidiSQL !