Phpmyadmin

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Interface web d'administration MySQL/MariaDB
Langage PHP
Alternative légère Adminer (fichier PHP unique)
Voir aussi Mysql · Mysqladmin · GRANT

phpMyAdmin est un outil de gestion graphique de MySQL/MariaDB accessible par navigateur : parcours des bases et tables, exécution de requêtes SQL, import/export, gestion des utilisateurs et de leurs droits, sans passer par la ligne de commande.

Installation

yum install phpmyadmin

Sur les distributions RHEL/CentOS récentes, le paquet n'est généralement plus dans les dépôts de base : il faut activer EPEL et/ou le dépôt Remi (PHP) au préalable — à vérifier selon la version de l'OS ciblé.

Authentification

phpMyAdmin propose plusieurs modes d'authentification, définis dans sa configuration (config.inc.php, sous /etc/phpMyAdmin/ ou /usr/share/phpmyadmin/ selon la distribution) :

$cfg['Servers'][$i]['auth_type'] = 'http';
  • cookie (mode par défaut, recommandé) — formulaire de connexion phpMyAdmin lui-même, identifiants MySQL saisis à chaque session, stockés côté client de façon chiffrée dans un cookie.
  • http — authentification HTTP basique gérée par le serveur web, avant même d'atteindre l'application phpMyAdmin.
  • config — identifiants MySQL fixes stockés directement dans le fichier de configuration : à éviter en production (équivalent à un compte partagé en clair sur le serveur).

Créer/modifier le compte utilisé pour se connecter : voir GRANT pour la syntaxe de création de compte et d'attribution de droits.

Restreindre l'accès réseau

Limiter l'accès à l'interface à certains réseaux via la configuration du serveur web. Exemple historique (syntaxe Apache 2.2, Order/Allow/Deny) :

<Directory /usr/share/phpMyAdmin/>
   Order Allow,Deny
   Allow from 192.168.0.0/24
   Allow from 127.0.0.1
   Allow from ::1
</Directory>

Sur Apache 2.4 et plus récent, cette syntaxe est obsolète et remplacée par Require :

<Directory /usr/share/phpMyAdmin/>
   Require ip 192.168.0.0/24
   Require ip 127.0.0.1
   Require ip ::1
</Directory>

Dans tous les cas, une interface d'administration de base de données ne devrait jamais être exposée directement sur Internet sans restriction d'accès (IP, VPN, ou a minima une authentification HTTP en amont).

Alternative : Adminer

Adminer est une alternative à phpMyAdmin distribuée sous la forme d'un unique fichier PHP à déposer sur le serveur, sans installation de paquet ni dépendances — plus légère, avec une interface plus dépouillée, et supportant plusieurs SGBD (MySQL, PostgreSQL, SQLite...) au-delà de MySQL seul.

Voir aussi

  • Mysql — page hub
  • Mysqladmin — équivalent en ligne de commande
  • GRANT — gestion des comptes et des droits