---
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](https://www.phpmyadmin.net/) |
| **GitHub** | [phpmyadmin/phpmyadmin](https://github.com/phpmyadmin/phpmyadmin) |
| **License** | GPL-2.0 |
| **Langage** | PHP |
| **Étoiles GitHub** | 7,9k ⭐ |
| **Dernière MAJ** | 2026-06-04 |
| **Catégorie** | [[cat-database\|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é)

```yaml
# 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

```bash
# 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

- [Site officiel](https://www.phpmyadmin.net/)
- [Documentation officielle](https://docs.phpmyadmin.net/)
- [GitHub phpmyadmin/phpmyadmin](https://github.com/phpmyadmin/phpmyadmin)
- [Wiki / FAQ](https://github.com/phpmyadmin/phpmyadmin/wiki)

## 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é
