MySQL : L'outil PHPMyAdmin

1. Qu'est-ce que PHPMyAdmin ?

PHPMyAdmin est une interface écrite en PHP permettant de gérer les données d'un serveur MySQL sous forme "graphique". Par des interactions avec des clics de souris, il permet de choisir une table, choisir un enregistrement à éditer, etc.

La plupart des hébergeurs fournissent cet outil, mais il n'est pas le seul : il existe par exemple Eskuel (notez le jeu de mots) ou tout simplement PuttY pour windows, lequel émule un terminal via SSH. (Les utilisateurs de Linux peuvent directement utiliser une console).

Cet article se base sur PHPMyAdmin, afin d'apprendre à l'utilisateur "lambda" quelques manipulations de base pour s'en servir.

2. Qu'est-ce que PHPMyAdmin ?

Je suppose dans cet article que nous ayions un compte plénipotentiaire sous PHPMyAdmin. On s'y connecte via une URL, par exemple http://mon_site.tld/phpmyadmin/. On y renseigne l'identifiant (login) et le mot de passe, puis on se retrouve sur la fenêtre principale :

PHPMyAdmin : Ecran d'accueil
PHPMyAdmin : Ecran d'accueil

Cet écran se divise en 2 parties : gauche et droite.

Partie gauche

A gauche, il y a 4 icônes et un menu déroulant. Les icônes permettent respectivement de :

  • HOME : revenir sur cette page
  • SQL : exécuter une ou des requêtes SQL sur la base de données
  • HELP : Aide PHMyAdmin
  • Doc SQL : Documentation SQL

En dessous se présente une menu déroulant qui liste toutes les bases de données présentes sur le serveur. Si l'hébergeur n'autorise qu'une seule base de données, il se peut que ce menu déroulant ne soit pas là.

Toujours dans la colonne de gauche, un long espace vide en bas : cet espace sera rempli, lors du choix d'une base, par une liste de liens qui seront toutes les tables de la base.

Partie droite

La partie droite sur l'accueil présente la version de MySQL disponible, ainsi que des liens pour créer une base de données, ou gérer les utilisateurs (lien "privilèges"). Selon les permissions du compte et les restriction éventuelles de l'hébergeur, certains liens peuvent ne pas apparaître.

Sélection d'une base de données

Choisir une base dans le menu déroulant à gauche. Son nom apparait en tête de liste en dessous, suivi de la liste de toutes les tables :

PHPMyAdmin : Sélection d'une base
PHPMyAdmin : Sélection d'une base

Dans le menu déroulant, j'ai choisi la base "newslettux_200". Elle apparait, avec, en dessous, toutes les tables qu'elle contient. Les tables apparaissent également sur la colonne de droite de la page. Si ce n'est pas le cas, il suffit de cliquer sur le nom de la base en tête de la liste dans la colonne de gauche de l'écran.

Chaque table est listée selon ces critères :

  • Table : le nom de la table
  • Action : 4 actions au choix, "Afficher" (affiche les enregistrements de la table), Structure (montre les champs composant la table), Rechercher (recherche des enregistrements), Insérer (insère un nouvel enregistrement), Vider (vide la table) et Supprimer (supprime la able
  • Enregistrements : donne le nombre d'enregistrements dans cette table
  • Type : donne le type de la table
  • Interclassement : l'encodage des caractères de cette table
  • Taille : la taille de cette table
  • Perte : la quantité d'espace disque récupérable après optimisation

On peut également cocher des tables (case sur leur gauche) en vue d'un traitement par lot (en dessous) désigné par "Pour la sélection :".

Remarquez en haut de fenêtre le fil d'ariane : Serveur: localhost - Base de données: newslettux200 : il change en fonction de la localité.

Structure d'une table

Lorsqu'on clique, dans la colonne de gauche, sur le nom d'une table, ou bien à droite, sur l'icône "Structure" en regard du nom de la table, on arrive à l'écran Structure d'une table :

PHPMyAdmin : Structure d'une table
PHPMyAdmin : Structure d'une table

Manipuler des données

Sous PHPMyAdmin, la manipulation de données (ajout, édition, suppresssion) se fait via l'onglet "SQL" présent au dessus de la structure de la table dans la colonne de droite de PHPMyAdmin. On peut également utiliser la seconde icône en haut à gauche qui fait apparaître la même fenêtre sous forme de pop-up.

PHPMyAdmin : Manipuler des données sans import de fichier
PHPMyAdmin : Manipuler des données sans import de fichier
PHPMyAdmin : Manipuler des données avec import de fichier
PHPMyAdmin : Manipuler des données avec import de fichier

Dans la fenêtre, il y a une requête SELECT par défaut, on peut l'effacer. Selon la version de PHPMyAdmin, l'option d'importer un fichier texte sera présente dans l'onglet "SQL" ou dans l'onglet "IMPORTER" : il s'agit de télécharger sur le serveur un fichier texte (le SQL est une suite de commandes textuelles après tout) dont les commandes sont séparées par un point virgule. Ces commandes le plus souvent servent à créer des tables et leur contenu. Attention au jeu de caractères du fichier : le plus souvent, il faudra choisir "Latin-1" au lieu de "UTF-8" à moins que le fichier à télécharger pour importer le contenu ne soit enregistré au format UTF-8.

3. PHPMyAdmin : Gestion des utilisateurs

Pour gérer les utilisateurs, il faut se rendre sur le lien "Privilèges" depuis la page d'accueil de PHPMyAdmin. La fenêtre affiche sur la partie droite tous les utilisateurs (comptes) existants :

PHPMyAdmin : Gestion des utilisateurs
PHPMyAdmin : Gestion des utilisateurs

Ce serveur possède une faille de sécurité : le compte plénipotentiaire, "root" (le "super utilisateur") n'a pas de mot de passe. Il est donc très facile pour un pirate de se connecter à ce serveur et, étant super utilisateur, de faire ce qu'il veut avec les comptes ou avec les bases de données. En réalité, ces captures d'écran sont tirées d'un PHPMyAdmin installé sur mon poste, non accessible depuis Internet : le risque est donc très minime, sauf à avoir accès physique à ma machine, de pouvoir modifier les comptes ou les bases et leur contenu.

On peut alors cliquer sur "Ajouter un utilisateur" et l'écran suivant indique l'identifiant, le mot de passe, le degré de liberté de l'utilisateur (peut-il choisir une seule base, si oui laquelle ? peut-il choisir de travailler sur toutes les bases ?) ainsi que ses permissions. On reconnait les 3 grandes catégories de commandes SQL. Pour un utilisateur qui n'aura accès qu'à une base et qui ne pourra modifier que les données, alors les permissions à cocher sont dans l'encadré à gauche. Pour cet exemple, je choisis de créer un compte "tux" qui aura pour permissions la manipulation des données, ainsi que la création et la modification de tables. Grâce à la case "Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base" une base propre lui sera attribuée, tux ne verra pas les autres bases sur le serveur et ne pourra donc pas les modifier.

PHPMyAdmin : Ajout d'un utilisateur
PHPMyAdmin : Ajout d'un utilisateur