Comment administrer une base de données avec Adminer ?

Comment administrer une base de données avec Adminer ?

Que ce soit pour un site web ou des services auto-hébergés, vous disposez certainement d'une ou plusieurs bases de données, que vous devez administrer plus ou moins régulièrement. Vous connaissez probablement phpMyAdmin, l'un des outils les plus utilisés pour ça. Cette interface a été créée initialement pour gérer les bases de données MySQL depuis un serveur php. De nombreux hébergeurs, gratuits comme payants, le proposent, ce qui évite à l'utilisateur d'avoir à l'installer.

Cette interface pratique permet d'exécuter, très facilement et sans grandes connaissances en bases de données, des requêtes comme les créations de table de données, insertions, mises à jour, suppressions et modifications de structure de la base de données, ainsi que l'attribution et la révocation de droits et l'import/export. Ce système permet de sauvegarder facilement une base de données sous forme de fichier .sql et d'y transférer ses données, même sans connaître SQL. L'utilisation de requêtes SQL reste toutefois possible.

Pour l'installation et l'utilisation de phpMyAdmin, je ne peux que vous rediriger vers la documentation officielle.

L'alternative : Adminer

Aujourd’hui je vous propose de découvrir un outil beaucoup moins connu que phpMyadmin, mais tout aussi efficace: Adminer.

Adminer

Adminer est outil léger et pratique qui remplit exactement le même rôle que phpMyadmin : vous permettre de gérer vos bases et tables MySQL en passant par une interface web.

Là où Adminer se démarque de phpMyAdmin, c’est par sa légèreté et sa simplicité d’installation. A l’inverse de phpMyadmin, qui nécessite un peu d’effort à l’installation et un minimum de configuration, Adminer se compose d’un seul et unique fichier php, qu’il vous suffit de déposer dans n’importe quel répertoire accessible sur le web. Adminer est disponible pour MySQL, PostgreSQL, SQLite, MS SQL et Oracle.

Pour l'installation, c'est très simple ! Il suffit de télécharger le fichier php (depuis la page github du développeur) sur votre hébergement, dans un dossier accessible et de vous rendre ensuite à l'adresse www.votresite.com/adminer.php .

Adminer Login

Il vous suffit alors de renseigner votre identifiant et mot de passe MySQL (et accessoirement un nom de base de données, mais ce n’est pas obligatoire) et de vous authentifier.

Comme vous pouvez le voir, l’interface est disponible en plusieurs langues, dont le Français. Toutes les fonctions qu’on peut attendre sont là : gestion (création, édition et suppression) de base de données, gestion des tables, des champs, importation de fichier SQL, exécution de requête SQL directe, gestion des utilisateurs MySQL, privilèges…

Il est possible d'étendre les fonctionnalités d'Adminer en lui ajoutant des plugins, pour ajouter le support d'extensions xml ou json dans les exports, ou encore changer le thème de l'interface, en ajoutant le fichier adminer.css aux côtés du fichier adminer.php.


Mise en place d'Adminer dans un environnement Docker

Avec les conteneurs que nous mettons en place au travers des articles rédigés, nous pouvons avoir besoin d'accéder à une base de données, pour corriger des entrées, exporter ou importer des données, ... Il est également possible d'ajouter Adminer en tant que conteneur Docker, dans une stack existante (ou dans sa propre stack).

Prenons l'exemple de la stack Nextcloud, qui contient une base de données mariaDB. Nous rajoutons un service adminer comme suivant :

version: '3.8'

services:
  nextcloud_db:
.....

  nextcloud_app:
.....

  adminer:
    image: adminer
    container_name: adminer
    ports:
      - 8080:8080  # Port sur lequel vous accéderez à l'interface web d'Adminer
    depends_on:
      - nextcloud_db  # Permet de s'assurer que le conteneur de la base de données est opérationnel avant de lancer le conteneur Adminer
    restart: unless-stopped

En relançant la stack avec la commande docker-compose up -d ou depuis Portainer, vous devriez pouvoir accéder à Adminer depuis votre navigateur à l'adresse http://<IP.HOTE.DOCKER>:8080. Le serveur est le nom du conteneur, et les identifiants sont ceux que vous avez défini dans le fichier .env.


Conclusion

Au final, quel est l'intérêt d'Adminer par rapport à phpMyAdmin ? Comme je l'ai dit, la simplicité d'installation ! Un simple fichier php à déposer où bon vous semble, ou bien quelques lignes pour lancer un conteneur et c'est terminé ! L'autre point intéressant, c'est l'absence de configuration à faire. Adminer est immédiatement fonctionnel. Enfin, dernier point non négligeable, et vous l'aurez peut-être remarqué, mais étant bien plus léger, Adminer est également plus réactif à l'utilisation.

Si vous avez des questions sur cet article, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté pour échanger.