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
- Connecter un serveur MySQL : via
PMA_HOST(Docker) ou l'écran d'accueil (login direct) - Créer un compte admin : utiliser
rootMySQL avec un mot de passe fort - Restreindre l'accès : limiter
PMA_ARBITRARY=0si on n'a qu'un seul serveur - Importer des données : onglet Importer > choisir fichier (SQL, CSV, etc.)
- Exporter un dump : onglet Exporter > choisir méthode (SQL, custom, ZIP)
- 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.logpour bloquer les brute-forces - 🚫 Désactiver
$cfg['AllowRoot']en production, créer un utilisateur dédié
📚 Ressources
Pages Liées
- cat-database — Catégorie Database
- app-traefik — Pour exposer phpMyAdmin en HTTPS derrière un reverse proxy
- recettes-docker-compose — Stack LAMP complète
- securisation-home-lab — Sécuriser un service web exposé