Files
2026-06-09 18:40:21 +02:00

6.6 KiB


title: phpMyAdmin created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, database, mysql, mariadb, web-ui, php, gpl, beginner] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Database, https://github.com/phpmyadmin/phpmyadmin]

🗄️ phpMyAdmin

L'interface web de référence pour MySQL et MariaDB : l'outil historique, éprouvé, soutenu par la communauté MySQL elle-même. Quasi-indispensable dès qu'on touche à un LAMP/LEMP.

📋 Informations Générales

Champ Valeur
Site web phpmyadmin.net
GitHub phpmyadmin/phpmyadmin
License GPL-2.0
Langage PHP
Étoiles GitHub 7,9k
Dernière MAJ 2026-06-04
Catégorie cat-database

📝 Description

phpMyAdmin est une interface web open source écrite en PHP qui permet d'administrer des serveurs MySQL et MariaDB depuis un navigateur. Le projet a démarré en 1998 (par Tobias Ratschiller, puis repris par la communauté MySQL) et reste aujourd'hui l'un des outils les plus utilisés au monde pour administrer des bases MySQL, avec des déploiements dans praticamente toutes les universités, hébergeurs et infrastructures LAMP. C'est un projet de la Software Freedom Conservancy sous licence GPL.

L'application supporte l'essentiel des opérations d'administration : navigation des schémas, exécution de requêtes SQL, import/export (CSV, SQL, XML, JSON, PDF), gestion des utilisateurs et privilèges, monitoring des processus, réplication, partitions, routines stockées, événements, triggers. phpMyAdmin gère aussi le mariage MariaDB/Galera et les nouveautés de MySQL 8 (roles, fenêtres, etc.). Une API cliente existe pour scripter, mais l'usage principal reste l'UI web.

Public cible : administrateurs LAMP/LEMP, hébergeurs, devs PHP. C'est un outil historique, stable, supporté par la fondation MySQL — un excellent choix par défaut dès qu'on doit exposer une base MySQL à l'œil humain.

Fonctionnalités principales

  • Navigation multi-schémas : arborescence des bases, tables, vues, routines
  • Éditeur SQL avec coloration, autocomplétion, historique
  • Import / Export : SQL, CSV, XML, JSON, YAML, PDF, OpenDocument
  • Gestion utilisateurs : création, privilèges, rôles MySQL 8
  • Designer : édition visuelle des schémas (relations, clés étrangères)
  • Suivi de réplication : état maître/esclave
  • Thèmes et personnalisation UI
  • Multi-langue (dont français complet)
  • Mode démo pour tester sans toucher à un serveur

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
version: '3.8'
services:
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin
    restart: unless-stopped
    environment:
      PMA_HOST: db          # nom du service MySQL/MariaDB
      PMA_PORT: 3306
      PMA_ARBITRARY: 1      # autoriser la connexion à n'importe quel serveur
      UPLOAD_LIMIT: 300M
    ports:
      - "8080:80"
    volumes:
      - /sessions            # pour la persistance des sessions PHP
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pma.rule=Host(`pma.example.com`)"
      - "traefik.http.routers.pma.entrypoints=websecure"
      - "traefik.http.routers.pma.tls.certresolver=letsencrypt"

  # Exemple de MySQL lié
  db:
    image: mysql:8
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: changeme
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

Option 2 : LAMP/LEMP classique

# Debian/Ubuntu
sudo apt install phpmyadmin
# Sélectionner Apache2 ou lighttpd lors de l'installation
# puis ouvrir /etc/apache2/conf-available/phpmyadmin.conf

⚙️ Configuration Initiale

  1. Connecter un serveur MySQL : via PMA_HOST (Docker) ou l'écran d'accueil (login direct)
  2. Créer un compte admin : utiliser root MySQL avec un mot de passe fort
  3. Restreindre l'accès : limiter PMA_ARBITRARY=0 si on n'a qu'un seul serveur
  4. Importer des données : onglet Importer > choisir fichier (SQL, CSV, etc.)
  5. Exporter un dump : onglet Exporter > choisir méthode (SQL, custom, ZIP)
  6. Activer le suivi : menu Status > Monitor pour la réplication, requêtes lentes, etc.

🔄 Alternatives

Open Source

  • app-adminer — Interface PHP mono-fichier, supporte MySQL/Postgres/SQLite/Mongo
  • app-cloudbeaver — Version web de DBeaver, multi-SGBD
  • app-dbgate — Client multi-bases (Postgres, MySQL, Mongo, Redis, SQLite)
  • app-whodb — Explorateur léger nouvelle génération
  • HeidiSQL — Client Windows natif (pas web)
  • Sequel Ace — Client macOS natif

Comparaison phpMyAdmin vs alternatives

Critère phpMyAdmin Adminer CloudBeaver DbGate
SGBD supportés MySQL/MariaDB 15+ 20+ 10+
Type Web PHP Web PHP Web Java Desktop + Web
Setup 1 service 1 fichier Conteneur Conteneur
Designer visuel
Éditeur SQL avancé Basique
Léger (PHP+ext)
Maturité 25+ ans 15 ans 7 ans 5 ans

Verdict : phpMyAdmin reste le standard pour MySQL/MariaDB. Pour du multi-SGBD ou du NoSQL, préférer CloudBeaver ou DbGate.

Propriétaires (ce que phpMyAdmin remplace)

  • MySQL Workbench (gratuit mais lourd, desktop Oracle)
  • Navicat for MySQL (payant, desktop)
  • TablePlus (freemium, desktop)
  • DataGrip (JetBrains, payant, desktop)

🔐 Sécurité

  • 🔒 Exposer derrière Traefik avec HTTPS obligatoire : un phpMyAdmin en HTTP sur Internet = port ouvert aux bots en moins d'une heure
  • 🔐 Activer l'authentification 2FA MySQL (caching_sha2_password) plutôt que d'utiliser root
  • 🛡️ Fail2ban : surveiller /var/log/apache2/access.log pour bloquer les brute-forces
  • 🚫 Désactiver $cfg['AllowRoot'] en production, créer un utilisateur dédié

📚 Ressources

Pages Liées