Phpmyadmin pour gérer vos bases MySQL

I. Introduction à phpmyadmin

Attention : tutorial initialement écrit pour Infomaniak Network SA et ses revendeurs. Droits exclusifs à la diffusion sur infomaniak.ch et 6ma.fr uniquement, reproduction interdite.

Phpmyadmin est un outil qui facilite l'administration de MySQL sur le web. Il est écrit en PHP et permet notamment de créer / supprimer des bases de données, de créer / modifier / supprimer des tables ou enregistrements, d'exécuter des requêtes SQL, d'importer et d'exporter des structures ou données de votre base de données Mysql, et bien plus.

II. Explications

1. Mise en route de phpmyadmin

Attention, ce chapître est valable uniquement si votre hébergement est chez Infomaniak. Dans le cas contraire, connectez vous à votre Phpmyadmin et passez directement à la Fig. 5.

Tout d'abord, sachez que vous n'avez pas à faire l'installation de Phpmyadmin sur nos hébergements puisqu'il est déjà préinstallé. Par contre, avant de pouvoir l'utiliser, il va vous falloir créer votre base de données MySQL.

Pour cela, commencez par vous identifier sur la console d'administration de votre/vos domaine(s). Puis déroulez le menu "Outils" et "Bases de données". Si vous n'avez encore jamais utilisé Mysql avec votre hébergement, vous verrez qu'aucune base de données n'est installée encore :

menu bases de données
(Fig. 1 : Menu bases de données)

Cliquez alors sur le premier bouton "Ajouter" pour créer une base de données Mysql. Vous obtiendrez la fenêtre suivante, choisissez le "nom de la base données" dans la liste déroulante et cliquez sur le bouton "Ajouter" pour valider.

ajouter une base de donnees
(Fig. 2 : Ajout d'une base de données)

Une fois la base de données créée, vous allez être renvoyé vers la page précédente (Fig. 1), cliquez alors sur le deuxième bouton "Ajouter" pour ajouter un utilisateur de base de données Mysql.

ajouter un utilisateur mysql
(Fig. 3 : Ajout d'un utilisateur)

Il vous sera alors demandé trois catégories d'informations :


Un nom d'utilisateur
Le nom d'utilisateur de la base de données mysql, celui avec lequel vous vous identifierez sur Phpmyadmin dans le chapître suivant.
Un mot de passe
Un mot de passe associé à ce nom d'utilisateur ainsi qu'une confirmation. Comme d'habitude, évitez les mots de passe trop simples pour la sécurité de votre site Internet.
Les droits d'accès de l'utilisateur
Les droits d'accès de l'utilisateur à la base de données, décomposés en trois grandes catégories : la lecture, écriture, et administration. A noter que si vous avez plusieurs bases de données, vous devrez indiquer les droits de l'utilisateur dans chacunes d'entre elles, en ne cochant rien sur celles où l'utilisateur ne doit avoir aucun droit.
- Lecture : va permettre de lire dans la base de données (par des instructions SELECT).
- Ecriture : va permettre d'écrire, modifier, supprimer des enregistrements dans la base de données (INSERT, UPDATE, DELETE).
- Administration : va permettre de créer, modifier, supprimer des tables et leurs structures (CREATE, DROP, INDEX, ALTER).

Cliquez enfin sur le bouton "Ajouter" pour valider quand vous avez rentré toutes ces informations. Et vous obtiendrez la fenêtre suivante :

afficher phpmyadmin
(Fig. 4 : Lancement de Phpmyadmin)

Voilà, vous pouvez voir qu'il y a au moins une base de données et un utilisateur avec les droits de lecture (au minimum) de créés, ce qui va permettre à cet utilisateur d'utiliser Phpmyadmin, en cliquant sur le bouton "Afficher" tout en bas.
Vous allez alors devoir vous identifier avec l'utilisateur de base de données créé plus haut :

invite identification sur phpmyadmin
(Fig. 5 : Se connecter à Phpmyadmin)

Voilà, après une identification correcte, vous serez prêt à utiliser Phpmyadmin pour gérer votre base de données. Et nous allons voir dans les chapîtres suivants comment bien utiliser Phpmyadmin.

interface de phpmyadmin
(Fig. 6 : Interface de Phpmyadmin)


Attention
Vous pouvez très bien accéder à Phpmyadmin sans passer par la console d'administration à chaque fois. Pour cela, faites un clic droit sur le bouton "Afficher" (voir Fig. 4) et "copier l'adresse du lien", ce qui vous permettra de conserver le lien pour un accès direct par la suite.

 

2. Operation sur les tables

Avant tout, il va falloir sélectionner la base de données sur laquelle vous souhaitez travailler dans la liste "Base de données" sur la gauche.


selectionner la base de donnees
(Fig. 7 : Sélection de la base de données)

Phpmyadmin vous indique alors qu'"Aucune table n'a été trouvée dans cette base". Nous allons donc commencer par créer une table, qui sera une table stockant des clients sur notre exemple. Dans la zône pour créer une nouvelle table à droite, nommez votre table et indiquez le nombre de champs qu'elle comportera. Validez en cliquant sur "Exécuter".


Attention
Pour toutes les opérations suivantes sur les tables, votre utilisateur doit avoir les droits admin (voir Fig. 3).

création de table
(Fig. 8 : Créer une nouvelle table)

Vous obtiendrez alors une page vous permettant de créer une table comportant 7 champs. Ici vous avez pas mal d'informations possibles à remplir, toutefois beaucoup sont optionnelles. Remplissez principalement le nom, le type et la valeur des champs comme l'exemple ci-dessous.
L'objectif de ce guide n'étant pas de vous détailler tous les types de champs possibles, reportez-vous aux documentations de Phpmyadmin et MySQL si vous ne savez pas du tout quelles valeurs mettre ici.

structure d'une table
(Fig. 9 : structure d'une table)

Le premier champ "id" créé est assez fréquemment utilisé pour identifier de manière unique tous les enregistrements qui seront présents dans cette table. C'est pourquoi, si vous allez à droite avec la barre de défilement, vous aurez une valeur "Extra" à mettre sur auto_increment si vous souhaitez que ce numéro unique s'incrémente tout seul, et cochez clé primaire.
clé primaire en auto-increment
(Fig. 10 : clé primaire en auto-increment)

Et enfin, cliquez sur le bouton "Sauvegarder" quand vous avez fini de créer la structure de votre table.

sauvegarder la nouvelle table
(Fig. 11 : Sauvegarder la nouvelle table)

Si vous avez rempli correctement cette structure, vous devriez avoir un message vous informant que "votre requête SQL a été exécutée avec succès". En effet, Phpmyadmin traduit toutes les opérations que vous faites via l'interface en language SQL. On aurait donc pu créer la même table en exécutant manuellement la requête "create table ..." affichée après, pour les connaisseurs du language.

actions sur une table
(Fig. 12 : Actions sur une table)


Remarquez aussi que vous pouvez modifier la structure de la table que vous venez de faire (Flèche 1 de la Fig. 12), supprimer la table (Flèche 3 de la Fig. 12), ou encore insérer des enregistrements manuellement dans la table (Flèche 2 de la Fig. 12). C'est ce dernier point que nous allons voir dans le chapître suivant.

 

3. Operations sur les enregistrements

Voyons tout d'abord comment insérer un enregistrement dans une table avec Phpmyadmin.
Cliquez sur l'icône permettant d'insérer des enregistrements (Flèche 1 de la Fig. 12) ou cliquez sur votre table puis sur l'onglet "Insérer".


inserer des enregistrements dans une table
(Fig. 13 : Insérer des enregistrements dans une table)

Vous pourrez alors rentrer les informations de votre premier enregistrement uniquement, ou même deux enregistrements à la fois (comme sur la Fig. 13). Cliquez sur le bouton "Exécuter" lorsque vous avez terminé.
Par contre, l'intérêt de votre site Internet porte sur le fait que ce soit les pages web qui insèrent dynamiquement des enregistrements dans votre base de données, vous aurez donc rarement à en ajouter manuellement à priori.


Attention
Sur notre exemple nous n'avons pas rempli le champ id, car c'est un nombre qui s'auto-incrémente.
Pour ce type de nombre, il ne sera jamais utile de mettre une donnée lors d'une insertion puisqu'il sera créé automatiquement.

Retournez maintenant à l'affichage des tables de votre base de données, vous aurez de nouvelles icônes disponibles à côté de votre table.


actions sur table et ses enregistrements
(Fig. 14 : Actions sur une table et ses enregistrements)

L'icône 1 de la Fig. 14 ci-dessus vous permettra d'afficher les enregistrements contenus dans la table et de faire des opérations sur ces enregistrements.
L'icône 2 de la Fig. 14 permet d'effectuer des recherches dans les enregistrements avec des conditions personnalisables.
L'icône 3 de la Fig. 14 vous permet de vider la table, c'est-à-dire effacer tous les enregistrements. Soyez donc prudents avec cette fonctionnalité.

Cliquez sur la première icône pour afficher les enregistrements.


modifier ou supprimer un enregistrement
(Fig. 15 : Modifier ou supprimer un enregistrement)


Ici vous voyez que vous pouvez sélectionner certains enregistrements, modifier ces enregistrements (Icône 1 de la Fig. 15), ou encore supprimer ces enregistrements. (Icône 2 de la Fig. 15)

 

4. Importer et exporter avec phpmyadmin

Il peut s'avérer intéressant dans le cas de sauvegardes ou d'un déménagement de serveur de savoir exporter et importer votre base de données MySQL. Nous allons voir comment réaliser cela avec Phpmyadmin.

1. Exportation avec phpmyadmin

Lorsque vous êtes dans votre base de données, vous aurez un onglet "Exporter" en haut (ainsi qu'un onglet "Importer" que l'on verra juste après).

importer et exporter
(Fig. 16 : Importer et exporter)

Cliquez sur l'onglet "Exporter".
Choisissez dans un premier temps la ou les table(s) que vous souhaitez exporter. Ensuite, vous verrez deux cadres cochés par défaut, il s'agit de "Structure" et "Données". Laissez les cochés si vous souhaitez TOUT exporter, sinon choisissez uniquement Structure pour la structure de la table ou données pour les enregistrements de la table.
Puis vous avez un cadre intitulé "Transmettre" à cocher pour que le fichier d'exportation soit téléchargé sur votre PC. Cliquez sur le bouton "Exécuter" finalement, pour lancer l'exportation.

exportation avec phpmyadmin
(Fig. 17 : Exportation avec Phpmyadmin)

2. Importation avec Phpmyadmin

Maintenant pour importer avec Phpmyadmin (que ce soit la structure ou les enregistrements d'une table), cliquez sur l'onglet "Importer" de Phpmyadmin dans votre base de données. (voir Fig. 16)
On vous demande alors l'emplacement du fichier texte à importer. Il s'agit du fichier .sql que vous avez exporté précedemment et que vous devez avoir téléchargé sur votre PC. Puis vous pouvez configurer les autres options à votre guise mais ça fonctionne bien par défaut, et cliquez sur "Exécuter" pour lancer l'importation.

importation avec phpmyadmin
(Fig. 17 : Importation avec Phpmyadmin)

 

5. En cas de probleme

Pour finir, voici les erreurs fréquentes que vous pourrez rencontrer avec les solutions correspondantes :

- Le message d'erreur qui s'affiche en rouge : "Créer une base de données: aucun privilège" sur Phpmyadmin


(Fig. 18 : Droits manquants pour créer une base

Ce message est logique, il faut d'abord créer une base de données depuis votre console d'administration avant de lancer Phpmyadmin (les bases de données ne peuvent pas être créées depuis Phpmyadmin). Pour cela reportez-vous au chapître 1 sur la mise en route de Phpmyadmin de ce guide.

- En faisant une requête "SELECT" ou autres opérations sur mes tables MySQL à l'aide de phpMyAdmin, j'obtiens des erreurs du genre: "Missing parameter: ... ".

Ce problème bien connu est en rapport avec le navigateur qui corrompt le fichier durant l'import/export. La solution consiste à employer Firefox pour l'import/export des bases ou utiliser la procédure d'importation via le répertoire data.

- En cas de problème avec les formats de caractères, si vous avez une erreur qui vous parle de latin1..., utf8, etc, ou des caractères qui se sont mal convertis entre une importation et une exportation.

(Fig. 19 : Exemple de caractères mal convertis)

Phpmyadmin fait les exportations dans le jeu de caractères utf8 par défaut. Si vous importez ce fichier en latin1, il est donc prévisible que vous obteniez des caractères bizarres à la place des accents etc.
Veillez donc lors de vos exports et imports à ce que les jeux de caractères soient identiques pour ne pas vous retrouver avec des caractères différents.

- Dans le cas où vous obtenez le message d'erreur suivant : #1267 - Illegal mix of collations (latin1_german1...)

Ceci est dû au fait que phpMyAdmin utilise le jeu de caractère utf8 par défaut.
Pour régler ce problème, en arrivant sur la page d'accueil du phpMyAdmin de la machine, il y a un champ avec une liste déroulante intitulée "interclassement pour la connexion". A cet endroit, choisissez n'importe quelle entrée commençant par "latin1_". Après cela il vous faudra réimporter la base à nouveau pour que la table de caractères soit la bonne et pour éviter les problèmes d'affichages.

(Fig. 20 : Interclassement pour la connexion MySQL)

- Une table semble être corrompue et/ou j'obtiens des messages d'erreur du genre : "phpBB : Critical Error" et "SQL Error : 1016 Can't open file: 'nuke_users.MYI' (errno: 145)"


Pour rémedier à ce genre de problèmes avec Phpmyadmin et réparer la ou les tables corrompues, rendez vous dans l'onglet SQL de votre Phpmyadmin, et exécutez la requête suivante sur la table corrompue dans le champ "Exécuter une ou des requêtes sur la base" :

REPAIR TABLE nom_de_la_table;

Et cliquez sur "Exécuter". S'il y a plusieurs tables concernées, vous pouvez aussi le faire avec la commande :

REPAIR TABLE nom_de_la_table1,nom_de_la_table2;

- Message d'erreur "Call to undefined function: pma_dbi_try_query()" (ou semblable) en voulant supprimer une entrée d'une de mes tables de ma base de données.

Il s'agit d'un bug de MySQL. Pour le fixer, il suffit d'ajouter une clef primaire sur la table en question.
Pour faire cela avec Phpmyadmin, cliquez tout d'abord sur la table concernée dans le listing des tables à gauche. Puis vérifiez dans le tableau "index" tout en bas s'il existe une entrée du genre "Nom de la clé Type PRIMARY PRIMARY" (ça ne devrait pas être le cas si vous avez ce problème).
Remontez sur le tableau du haut, et transformez sous "Action" un id unique en clef primaire en cliquant sur le bouton symbolisé par un clef. Normalement cela devrait vous permettre de manipuler à nouveau votre table correctement.

(Fig. 21 : Transformer un champ en clé primaire)

III. Conclusion du tutorial

Nous venons de voir l'utilisation générale de Phpmyadmin, qui se révèle très utile pour administrer vos bases de données MySQL de façon vraiment simplifiée. Il est donc à utiliser sans modération pour tous les webmasters.