Haut de page  -  Prérequis  -  Introduction  -  Installation  -  Configuration
Transformations  -  FAQ  -  Développeurs  -  Crédits  -  Traducteurs

Documentation phpMyAdmin 2.6.0-dev


Prérequis


Introduction

phpMyAdmin peut gérer un serveur MySQL (cela nécessite un compte super-utilisateur) aussi bien qu'une seule base de données. Pour pouvoir administrer une seule base de données, il est nécessaire d'avoir un droit de lecture / écriture sur la base de données concernée. Il vous appartient de consulter la section appropriée dans le manuel de MySQL.
Actuellement phpMyAdmin sait :

(*)  phpMyAdmin peut compresser des fichiers d'exportation (dumps) ou CSV (aux formats Zip, GZip -RFC 1952- ou Bzip2) si vous utilisez PHP4 version 4.0.4 ou ultérieure avec l'option Zlib (--with-zlib) et/ou Bzip2 (--with-bz2).


Installation

REMARQUE : phpMyAdmin n'applique pas de méthodes de sécurité spéciales au serveur de données MySQL. Il appartient toujours à l'administrateur système d'accorder les autorisations adéquates sur les bases de données MySQL. La page «Privilèges» de phpMyAdmin peut être utilisée pour cela.

À l'attention des utilisateurs Mac : Si vous utilisez une version MacOS antérieure à la version OS X, StuffIt se débrouille avec les formats Mac.
Vous devrez donc convertir, tout comme dans BBEdit, au format Unix TOUS les scripts phpMyAdmin avant de les transférer sur votre serveur, car PHP ne semble pas apprécier les caractères de fin de ligne au format Mac («\r»).

Installation rapide :

  1. «Détarrez» (.tar) ou «dézippez» (.zip) la distribution (assurez-vous de conserver l'arborescence des sous-répertoires). Exécutez donc la commande suivante : tar -xzvf phpMyAdmin_x.x.x.tar.gz dans le répertoire document racine de votre serveur web. Si vous n'avez pas d'accès direct à votre répertoire racine document, mettez les fichiers dans un répertoire de votre ordinateur local, et, après l'étape 3, transférez le répertoire sur votre serveur web en utilisant, par exemple, le protocole ftp.
  2. Éditez le fichier config.inc.php avec votre éditeur favori et modifiez les valeurs du serveur hôte, de l'utilisateur, du mot de passe et du mode d'authentification pour vous ajuster à votre environnement. Ici, «hôte» signifie le serveur MySQL. Ajoutez également la valeur correcte pour $cfg['PmaAbsoluteUri']. Veuillez consulter la section Configuration pour une explication de ces valeurs.
  3. Nous vous recommandons de protéger le répertoire dans lequel vous installez phpMyAdmin (à moins qu'il ne soit sur un intranet fermé, ou que vous ne souhaitiez utiliser HTTP ou l'authentification par cookie), par exemple avec HTTP-AUTH (dans un fichier .htaccess). Voir la sous-section multi-utilisateurs de la FAQ pour toute information complémentaire, particulièrement la partie 4.4 de la FAQ.
  4. Ouvrir le fichier <www.votre-hôte.com>/<votre-répertoire-d'installation>/index.php dans votre navigateur. phpMyAdmin devrait maintenant afficher un écran de bienvenue et vos bases de données, ou une boîte de dialogue de connexion si vous utilisez le mode HTTP ou le mode authentification par cookie.
  5. Si vous voulez bénéficier de toute une série de nouveautés (signets, commentaires, historique-SQL, génération-PDF, transformation des contenus de champ, etc.), vous devrez créer un ensemble de tables dans votre base de données. Veuillez regarder dans votre répertoire /scripts, où vous devriez trouver un fichier du nom de create_tables.sql. (Si vous utilisez un serveur Windows, portez une attention particulière à la partie 1.23 de la FAQ). Vous pouvez d'ores et déjà utiliser phpMyAdmin qui créera les tables pour vous. S'il vous plaît, sachez que vous pouvez avoir besoin de privilèges spéciaux (administrateur) pour créer la base de données et les tables. Après avoir importé le fichier create_tables.sql, vous devrez spécifier le nom des tables dans votre fichier config.inc.php. Vous trouverez les directives à utiliser pour cela dans la section Configuration.

Mise à jour :

Utiliser les modes d'authentification :

Mode d'authentification 'http' :

Mode d'authentification 'cookie' :

Mode d'authentification 'config' :


Configuration

À l'attention des utilisateurs Mac : PHP ne semble pas apprécier les caractères de fin de ligne Mac («\r»). Aussi, assurez-vous de choisir l'option qui autorise l'utilisation des caractères de fin de ligne *nix («\n») dans votre éditeur de texte avant d'enregistrer un script que vous avez modifié.

Toutes les données de configuration sont placées dans config.inc.php.

$cfg['PmaAbsoluteUri'] chaîne
Définissez ici l'URL complète (avec le chemin d'accès complet) de la version de votre phpMyAdmin. C'est-à-dire http://www.votre_site.net/chemin_d_acces_a votre_repertoire_phpMyAdmin/.

phpMyAdmin a besoin de ce paramètre pour se conformer au protocole HTTPl, expliqué dans la RFC2616, section 14.30.

N'oubliez pas le «slash» («/») à la fin de votre URL. L'URL ne doit contenir que des caractères valides pour une URL, et sur certains serveurs, le chemin d'accès est sensible à la casse.

À partir de la version 2.3.0, vous pouvez essayer de laisser ce paramètre vide, car le programme essaie d'auto-détecter sa valeur. Les détails supplémentaires se trouvent dans le fichier de configuration.

Ce paramètre peut également être rempli dynamiquement. Vous pouvez, par exemple, utiliser un code du genre :
$cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
. $_SERVER['HTTP_HOST']
. (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
. substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')+1);

ou

$cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
. $_SERVER['SERVER_NAME']
. (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
. substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/')+1);
Veuillez noter que l'élément $_SERVER n'existe pas dans les version PHP antérieures à la version 4.1.0. Dans ce cas, essayez de le remplacer par $_SERVER by $HTTP_SERVER_VARS ou $GLOBALS.

$cfg['PmaAbsoluteUri_DisableWarning'] booléen
Par défaut, quand vous laissez $cfg['PmaAbsoluteUri'] vide, et que le système détecte automatiquement votre URI absolue, nous affichons un avertissement pour vous le rappeler. Si vous avez testé la détection automatique et qu'elle fonctionne parfaitement sur votre configuration, alors vous pouvez définir cette variable pour supprimer cet avertissement.

$cfg['PmaNoRelation_DisableWarning'] booléen
À partir de la version 2.3.0 phpMyAdmin offre beaucoup de fonctionnalités pour travailler avec les tables maîtres / de référence (voir $cfg['Servers'][$i]['pmadb']).
Si vous essayez de le paramétrer et qu'il ne fonctionne pas pour vous, regardez la page «Structure» d'une base de données où vous voudriez l'utiliser. Vous trouverez alors un lien qui analysera pourquoi ces fonctionnalités ont été désactivées.
Si vous ne voulez pas utiliser ces fonctionnalités, mettez cette variable à TRUE pour empêcher ce message d'apparaître.

$cfg['blowfish_secret'] chaîne
À partir de la version 2.5.2, la méthode d'authentification par 'cookie' utilise l'algorithme blowfish pour chiffrer le mot de passe.
Si au moins un serveur utilise dans sa configuration la méthode d'authentification par 'cookie', entrez ici une phrase mot de passe de votre choix qui sera utilisée par blowfish.
$cfg['Servers'] tableau
Depuis la version 1.4.2, phpMyAdmin gère l'administration de plusieurs serveurs MySQL. Par conséquent, un tableau $cfg['Servers'] a été ajouté qui contient les informations de connexions pour les différents serveurs. Le premier $cfg['Servers'][$i]['host'] contient le nom d'hôte du premier serveur, le second $cfg['Servers'][$i]['host'] le nom d'hôte du second serveur, etc. Si vous n'avez qu'un seul serveur à administrer, laissez simplement vides les autres instances de $cfg['Server'].

$cfg['Servers'][$i]['host'] chaîne
Le nom d'hôte ou l'adresse IP de votre $i-ème serveur MySQL. C'est-à-dire localhost.

$cfg['Servers'][$i]['port'] chaîne
Le numéro de port de votre $i-ème serveur MySQL. Par défaut : 3306 (laissez à blanc pour utiliser la valeur par défaut). Si vous utilisez «localhost» comme nom d'hôte, MySQL ignore ce numéro de port et se connecte avec le socket, donc, si vous voulez vous connecter avec un port différent de celui par défaut, utilisez "127.0.0.1" ou le nom d'hôte réel dans $cfg['Servers'][$i]['host'].

$cfg['Servers'][$i]['socket'] chaîne
Le chemin d'accès vers le socket à utiliser. Laissez à blanc pour utiliser la valeur par défaut.
Pour utiliser la fonctionnalité socket, vous devez exécuter PHP version 3.0.10 ou ultérieure.

$cfg['Servers'][$i]['connect_type'] chaîne
Quel type de connexion utiliser avec le serveur MySQL. Vos choix sont 'socket' et 'tcp'. Par défaut, c'est 'tcp' parce qu'il est pratiquement sûr qu'il est disponible sur tous les serveurs MySQL, alors que les sockets ne sont pas gérés sur certaines plateformes.

Pour utiliser le mode socket, votre serveur MySQL doit être sur la même machine que le serveur web.

$cfg['Servers'][$i]['extension'] chaîne
Quelle extension php MySQL utiliser pour la connexion. Les options autorisées sont :

mysql : L'extension MySQL classique. C'est l'option recommandée et par défaut à ce jour.

mysqli :  L'extension MySQL améliorée. Cette extension devient disponible avec php version 5.0.0, et recommandée pour se connecter sur un serveur exécutant MySQL version 4.1.x.
Remarque : la gestion de MySQL 4.1 avec phpMyAdmin est expérimentale!

$cfg['Servers'][$i]['compress'] booléen
Pour utiliser ou non un protocole compressé pour la connexion au serveur MySQL (expérimental).
Cette fonctionnalité requiert PHP version 4.3.0 ou ultérieure.

$cfg['Servers'][$i]['controluser'] chaîne
$cfg['Servers'][$i]['controlpass'] chaîne
Ce compte spécial est utilisé pour deux propos distincts : rendre possible une installation multi-utilisateurs (mode d'authentification http ou par cookie) et également pour les fonctionnalités relationnelles (voir $cfg['Servers'][$i]['pmadb']).

Si vous utilisez les modes d'authentification HTTP ou par cookie (ou le mode d'authentification 'config' depuis phpMyAdmin 2.2.1), vous devez fournir des informations sur un compte MySQL qui a un privilège SELECT sur les tables  mysql.user (toutes les colonnes sauf «Password»), mysql.db (toutes les colonnes) et mysql.tables_priv (toutes les colonnes sauf «Grantor» et «Timestamp»). Ce compte est utilisé pour vérifier quelles bases de données l'utilisateur pourra voir à la connexion.
Veuillez consulter la section Installation sur «Utiliser les modes d'authentification» pour plus de renseignements.

Notez que si vous essayez de vous connecter à phpMyAdmin avec cet utilisateur de contrôle - «controluser», vous pourriez obtenir des erreurs, en fonction des privilèges que vous avez donnés à l'utilisateur de contrôle. phpMyAdmin ne gère pas une connexion directe avec cet utilisateur.

Dans les versions antérieures à la version 2.2.5, ils étaient appelés «stduser/stdpass».

$cfg['Servers'][$i]['auth_type'] chaîne ['http'|'cookie'|'config']
Définit le mode d'authentification config, cookie ou http qui sera utilisé sur le serveur.
Veuillez consulter la section Installation sur «Utiliser les modes d'authentification» pour plus de renseignements.

$cfg['Servers'][$i]['user'] chaîne
$cfg['Servers'][$i]['password'] chaîne
La paire utilisateur/mot de passe qu'utilisera phpMyAdmin pour se connecter au serveur MySQL. Cette paire  utilisateur/mot de passe n'est pas nécessaire quand  les modes d'authentification http ou cookie sont utilisés, et doit rester vide.

$cfg['Servers'][$i]['only_db'] chaîne ou tableau
S'il est indiqué un nom de base de données (ou un tableau de noms de bases de données) , seule(s) cette (ces) base(s) sera (seront) affichée(s) à l'utilisateur. Depuis la version 2.2.1 de phpMyAdmin, ce(s) nom(s) de base(s) de données peuvent contenir des méta-caractères MySQL («_» et «%») : si vous voulez utiliser des instances littérales de ces caractères, utilisez des séquences d'échappement (c'est-à-dire écrivez 'ma\_bdd' et pas 'ma_bdd').
Ce paramétrage est un moyen efficace de diminuer la charge du serveur puisque ce dernier n'a pas besoin d'envoyer des requêtes MySQL pour construire la liste des bases de données disponibles. Mais cela ne remplacera pas les règles de privilèges sur le serveur de base de données MySQL. S'il est utilisé, cela signifie seulement que seules ces bases de données seront affichées, mais pas que toutes les autres bases de données ne pourront pas être utilisées.

Un exemple d'utilisation de plus d'une base de données : $cfg['Servers'][$i]['only_db'] = array('bdd1', 'bdd2');

Comme dans phpMyAdmin 2.5.5, l'ordre à l'intérieur du tableau est utilisé pour trier les bases de données dans le cadre de gauche, de la sorte, vous pouvez ordonner vos bases de données comme bon vous semble.
Si vous voulez avoir certaines bases de données en haut de page, et que peu importe l'ordre des autres bases, vous n'avez pas besoin de spécifier toutes les autres bases. Utilisez : $cfg['Servers'][$i]['only_db'] = array('bdd3', 'bdd4', '*'); plutôt que de dire à phpMyAdmin qu'il doit afficher bdd3 et bdd4 en haut, et le reste en ordre alphabétique.
 
$cfg['Servers'][$i]['verbose'] chaîne
Seulement utile si vous utilisez phpMyAdmin avec plusieurs entrées de serveurs. Si elle est définie, cette chaîne sera affichée à la place du nom d'hôte dans le menu déroulant de la page principale. Cela peut être utile si vous ne voulez montrer que certaines bases de données sur votre système, par exemple.


$cfg['Servers'][$i]['pmadb'] chaîne
À partir de la version 2.3.0, phpMyAdmin offre beaucoup de nouvelles fonctionnalités pour travailler avec les tables maîtres / étrangères. Pour les utiliser, tout comme la fonctionnalité signet, vous avez besoin de tables spéciales avec une structure prédéfinie, que nous expliquons ci-dessous.

Voir la section Installation rapide de ce document pour une manière rapide de créer ces tables. Si vous utilisez un serveur Windows, lisez également la partie 1.23 de la FAQ.

Si vous êtes le seul utilisateur de cette installation phpMyAdmin, vous pouvez utiliser votre base de données courante pour stocker ces tables spéciales; dans ce cas, mettez juste le nom de votre base de données dans $cfg['Servers'][$i]['pmadb'].

Si vous définissez une installation phpMyAdmin multi-utilisateurs, vous devrez créer une nouvelle base de données et définir des privilèges spéciaux en tant que super-utilisateur :



$cfg['Servers'][$i]['bookmarktable'] chaîne
Depuis la version 2.2.0, phpMyAdmin autorise la mise en signets (favoris) des requêtes. Cela peut être utile pour les requêtes que vous utilisez souvent.

Pour pouvoir utiliser cette fonctionnalité, vous devez :

$cfg['Servers'][$i]['relation'] chaîne
Depuis la version 2.2.4, vous pouvez décrire, dans une table spéciale 'relation', quel champ est une clé pour une autre table (une clé étrangère). phpMyAdmin utilise actuellement cela pour :
Les clés peuvent être numériques ou alphanumériques.

Pour permettre l'utilisation de cette fonctionnalité, le super-utilisateur doit :
Veuillez noter que dans la version actuelle, master_db doit être identique à foreign_db. Ces champs ont été prévus pour le développement futur de relations inter-bases.


$cfg['Servers'][$i]['table_info'] chaîne
Depuis la version 2.3.0, vous pouvez décrire dans une table spéciale 'table_info', quel champ doit être affiché comme info-bulle en déplaçant le curseur sur la clé correspondante.
Cette variable de configuration détient le nom de cette table spéciale. Pour pouvoir utiliser cette fonctionnalité, le super-utilisateur doit :
Astuce d'utilisation : Champ à afficher.


$cfg['Servers'][$i]['table_coords'] chaîne
$cfg['Servers'][$i]['pdf_pages'] chaîne
Depuis la version 2.3.0, phpMyAdmin peut créer des pages PDF montrant les relations entre vos tables. Pour ce faire, il a besoin de deux tables «pdf_pages» (qui stocke les informations sur les pages PDF disponibles) et «table_coords» (qui stocke les coordonnées où chaque table sera placée sur le schéma PDF réalisé).

Vous devez utiliser la fonctionnalité «relation» et avoir une table des pages PDF (voir $cfg['Servers'][$i]['pdf_pages']) pour créer des réalisations PDF.

Pour pouvoir utiliser cette fonctionnalité, le super-utilisateur doit :
Astuce d'utilisation : Réalisation de PDF.


$cfg['Servers'][$i]['column_info'] chaîne
Depuis la version 2.3.0, vous pouvez stocker des commentaires pour décrire chaque colonne de chaque table. Ils seront alors visibles dans «Version imprimable».

À partir de la version 2.5.0, les commentaires sont par conséquent utilisés dans les pages de propriété de table et dans la vue afficher la table, apparaissant sous forme d'info-bulle au-dessus du nom de colonne (page propriétés) ou intégrés dans l'en-tête de la vue parcours de table. Ils peuvent aussi être vus dans un fichier d'exportation de table. Veuillez consulter les directives de configuration adéquates plus loin.

Une autre nouveauté de la version 2.5.0 est le système de conversion mime qui est également fondé sur la structure de table suivante. Voir Conversions pour plus de renseignements. Pour utiliser le système de conversion mime, votre table column_info doit contenir les trois nouveaux champs 'mimetype', 'transformation', 'transformation_options'.

Pour autoriser l'utilisation de cette fonctionnalité, le super-utilisateur doit :

$cfg['Servers'][$i]['history'] chaîne
Depuis la version 2.5.0, vous pouvez stocker votre historique SQL, ce qui signifie toutes les requêtes que vous entrez manuellement dans l'interface de phpMyAdmin. Si vous ne voulez pas utiliser un historique stocké dans une table, vous pouvez choisir un historique utilisant JavaScript. En utilisant JavaScript, toutes les entrées de votre historique seront perdues en fermant la fenêtre.

En utilisant $cfg['QueryHistoryMax'], vous pouvez spécifier le nombre d'entrées de l'historique que vous voulez conserver. À chaque connexion, cette liste est réduite au nombre maximum d'entrées.

La requête historique n'est disponible que si vous utilisez la fenêtre de requête JavaScript, voir $cfg['QueryFrame'].

Pour autoriser l'utilisation de cette fonctionnalité, le super-utilisateur doit :
$cfg['Servers'][$i]['verbose_check'] chaîne
La version 2.5.0 introduisant la nouvelle gestion de la conversion MIME, la colonne column_info recense maintenant trois nouveaux champs. Si cette variable est définie à TRUE (par défaut) phpMyAdmin vérifiera si vous disposez de la dernière structure disponible de la table. Si ce n'est pas le cas, il enverra un avertissement au super-utilisateur.

Vous pouvez désactiver cette fonctionalité en positionnant la variable à «FALSE», ce qui améliorerait les performances.

Il est recommandé de la positionner à FALSE, quand vous êtes sûr que votre structure est à jour.

$cfg['Servers'][$i]['AllowDeny']['order'] chaîne
Si votre règle «order» est vide, alors l'authentification IP est désactivée.

Si votre règle «order» est définie à 'deny,allow' alors le système applique toutes les règles «deny» puis les règles «allow». L'accès est autorisé par défaut. Tout client qui ne répondrait pas à une commande «deny» ou «allow»  sera autorisé à accéder au serveur.

Si votre règle «order» est définie à 'allow,deny' alors le système applique toutes les règles «allow» puis les règles «deny». L'accès est refusé par défaut. Tout client qui ne répondrait pas à une directive «allow» ou «deny» se verra refuser l'accès au serveur.

Si votre règle «order» est définie à 'explicit', l'authentification est réalisée de manière similaire à la règle 'deny,allow', avec en plus la restriction que la combinaison de votre hôte/nom d'utilisateur doit être présente dans les règles allow, et pas dans les règles deny. C'est le moyen le plus sûr d'utiliser les règles allow/deny, et qui est employé pour Apache pour spécifier les règles allow et deny sans définir d'ordres.

$cfg['Servers'][$i]['AllowDeny']['rules'] tableau de chaînes
Le format général des règles est le suivant :
      <'allow' | 'deny'> <username> [from] <ipmask>

Si vous voulez que cela concerne tous les utilisateurs, il est possible d'utiliser un symbole '%' comme méta-caractère dans le champ username.
Il y a quelques raccourcis que vous pouvez utiliser pour le champ ipmask comme :
     'all' -> 0.0.0.0/0
     'localhost' -> 127.0.0.1/8


Avoir une liste de règles vide est équivalent à l'utilisation de 'allow % from all' si l'ordre de votre règle est définie à 'deny,allow' ou 'deny % from all' si l'ordre de votre règle est définie à 'allow,deny' ou 'explicit'.

Pour le système de concordance IP, ce qui suit fonctionne :
xxx.xxx.xxx.xxx (une adresse IP exacte)
xxx.xxx.xxx.[yyy-zzz] (une plage d'adresses IP)
xxx.xxx.xxx.xxx/nn (CIDR, adresses IP de type Classless Inter-Domain Routing -- routage inter-domaine sans classe)
Mais ce qui suit ne fonctionne pas :
xxx.xxx.xxx.xx[yyy-zzz] (plage partielle d'adresses IP)

$cfg['ServerDefault'] entier
Si vous avez plus d'un serveur, vous pouvez définir $cfg['ServerDefault'] sur n'importe lequel d'entre eux pour s'auto-connecter sur celui-ci quand phpMyAdmin est démarré, ou le définir à 0 sur tous les serveurs pour avoir une liste de serveurs auxquels se connecter.
Si vous n'avez qu'un seul serveur, $cfg['ServerDefault'] DOIT être défini sur ce serveur.

$cfg['OBGzip'] chaîne/booléen
Définit si l'on utilise la mise en cache des sorties (output buffering) GZip pour accroître la vitesse des transferts HTTP.
Mettre à true/false pour activer/désactiver. Quand défini sur 'auto' (chaîne), phpMyAdmin essaie d'activer la mise en cache des sorties et la désactivera automatiquement, si votre navigateur a des problèmes avec la mise en cache. IE6, avec un certain correctif, est connu pour provoquer une corruption de données en ayant la mise en cache activée.

$cfg['PersistentConnections'] booléen
Définit si les connexions persistantes doivent être utilisées (mysql_connect ou mysql_pconnect).

$cfg['ExecTimeLimit'] entier [nombre de secondes]
Définit le nombre de secondes allouées à un script pour s'exécuter. Si le nombre de secondes est défini à zéro, aucune limite de temps n'est imposée.
Ce paramètre est utilisé lors de l'importation/exportation de fichiers de base mais n'a pas d'effet quand PHP est exécuté en mode sécurisé.

$cfg['SkipLockedTables'] booléen
Marque les tables utilisées et permet de montrer les bases de données avec des tables verrouillées (depuis la version 3.23.30).

$cfg['ShowSQL'] booléen
Définit si les requêtes SQL générées par phpMyAdmin doivent être affichées.

$cfg['AllowUserDropDatabase'] booléen
Définit si les utilisateurs lamda (non administrateur) sont autorisés à supprimer leur propre base de données. S'il est défini à FALSE, le lien «Supprimer la base ...» ne sera pas visible, et même la commande «DROP DATABASE ma_base_de_donnees» sera rejetée. Très pratique pour un FAI avec beaucoup de clients.

$cfg['Confirm'] booléen
Définit si un avertissement («Êtes-vous vraiment sûr...») doit être affiché quand vous êtes sur le point de perdre des données.

$cfg['LoginCookieRecall'] booléen
Définit si le compte de connexion précédent doit être rappelé en mode d'authentification par cookie.

$cfg['UseDbSearch'] booléen
Définit si «rechercher une chaîne dans la base de données» est activé.

$cfg['IgnoreMultiSubmitErrors'] booléen
Définit si phpMyAdmin continuera à exécuter une requête multiple si l'une d'elles échoue. Par défaut, l'exécution de la requête multiple sera arrêtée.

$cfg['VerboseMultiSubmit'] booléen
Définit si phpMyAdmin affichera les résultats de chaque requête d'une requête multiple intégrés dans le fichier journal SQL en tant que commentaires insérés. Défini par défaut à TRUE.

$cfg['AllowArbitraryServer'] booléen
Si ce paramètre est activé, il vous permet de vous connecter à un serveur arbitraire en utilisant l'authentification par cookie.

REMARQUE : Veuillez utiliser ce paramètre avec précaution, car il peut autoriser à accéder aux serveurs MySQL placés derrière votre pare-feu où votre serveur http est situé.

$cfg['LeftFrameLight'] booléen
Définit si on utilise un menu construit par sélection et si on affiche seulement les tables en cours dans le cadre de gauche (page plus réduite). Vous ne pouvez utiliser la fonctionnalité d'affichage des dossiers imbriqués en utilisant $cfg['LeftFrameTableSeparator'] qu'en mode non allégé.

$cfg['LeftFrameTableSeparator'] chaîne
Définit une chaîne à utiliser pour les espaces de table imbriquée. Défini par défaut à '__'. Ceci signifie que si vous avez des tables telles que  'première__seconde__troisième' elles seront affichées comme une hiérarchie à trois niveaux telle que : premier > seconde > troisième. Si défini à FALSE ou vide, la fonctionnalité est désactivée. REMARQUE : vous ne devez pas utiliser ce séparateur dans un nom de table comme préfixe ou suffixe, ou plusieurs fois consécutivement à l'intérieur du nom de la table.

$cfg['LeftFrameTableLevel'] chaîne
Définit le nombre de sous-niveaux qui doivent être affichés quand les tables sont subdivisées par le séparateur ci-dessus.

$cfg['ShowTooltip'] booléen
Définit si un commentaire de table est affiché comme info-bulle dans le cadre de gauche.

$cfg['ShowTooltipAliasDB'] booléen
Si les info-bulles sont activées et qu'un commentaire de base de données est défini, cela affichera le commentaire et le nom réel de la table. Cela signifie que, si vous avez une table appelée 'user0001' et que vous y ajoutiez le commentaire 'MonNom', vous verrez donc le nom 'MonNom' utilisé dans le cadre de gauche et l'info-bulle affichera le vrai nom de la base de données.

$cfg['ShowTooltipAliasTB'] booléen
Identique à $cfg['ShowTooltipAliasDB'], sauf qu'il fonctionne pour les noms de tables.

$cfg['LeftDisplayLogo'] booléen
Définit si le logo de phpMyAdmin est affiché en haut, dans le cadre de gauche. Défini par défaut à TRUE.

$cfg['LeftDisplayServers'] booléen
Définit si un choix de serveur est proposé en haut, dans le cadre de gauche. Défini par défaut à FALSE.

$cfg['ShowStats'] booléen
Définit  si on affiche l'espace disque utilisé et les statistiques sur les bases de données et les tables.
Les statistiques nécessitent au moins la version 3.23.3 de MySQL 3.23.3 et, à ce jour, MySQL ne fournit pas de telles informations pour les tables de base de données Berkeley.

$cfg['ShowMysqlInfo'] booléen
$cfg['ShowMysqlVars'] booléen
$cfg['ShowPhpInfo'] booléen
$cfg['ShowChgPassword'] booléen
Définit si on affiche les liens «Afficher l'état du serveur MySQL», «Afficher les variables du serveur MySQL», «Afficher les informations relatives à PHP» et «Modifier le mot de passe» pour les utilisateurs lambda dans le cadre principal (de droite) de démarrage. Ce paramètre ne vérifie pas les commandes MySQL entrées directement.

Veuillez noter que pour empêcher l'utilisation de phpinfo() dans les scripts, vous devez mettre ceci dans votre fichier php.ini :
    disable_functions = phpinfo()

Veuillez également noter qu'activer le lien «Modifier le mot de passe» n'a pas d'effet utilisé avec le mode d'authentification «config» : parce que le mot de passe est codé dans le fichier de configuration, les utilisateurs finaux ne sont pas autorisés à changer leur mot de passe.

$cfg['SuggestDBName'] booléen
Définit si un nom de base de données doit être suggéré dans le formulaire «Créer une base de données» ou si le champ est laissé vide.

$cfg['ShowBlob'] booléen
Définit si les champs BLOB sont affichés en naviguant dans le contenu d'une base.

$cfg['NavigationBarIconic'] booléen
Définit si les boutons de la barre de navigation affiche le texte ou les icônes seulement.

$cfg['ShowAll'] booléen
Définit si un utilisateur peut avoir un bouton «Tout afficher» en mode afficher.

$cfg['MaxRows'] entier
Nombre de colonnes affichées lors de la navigation sur un ensemble de résultats. Si le nombre des colonnes est supérieur, des liens Suivant/Précédent seront affichés.

$cfg['Order'] chaîne [DESC|ASC|SMART]
Définit si les champs sont affichés en ordre croissant (ASC), décroissant (DESC) ou en ordre «intelligent» (SMART) - c'est-à-dire en ordre décroissant pour les champs de type TIME, DATE, DATETIME & TIMESTAMP et croissant pour les autres - par défaut.

$cfg['ProtectBinary'] booléen ou chaîne
Définit si les champs BLOB ou BINARY sont protégés lors de l'affichage du contenu d'une table. Les valeurs permises sont :
- FALSE pour permettre la modification de tous les champs;
- blob pour permettre la modification de tous les champs sauf les champs BLOBS;
- all pour interdire la modification des champs BINARY ou BLOB.

$cfg['ShowFunctionFields'] booléen
Définit si les champs des fonctions MySQL doivent être affichés en mode modification/insertion.

$cfg['CharEditing'] chaîne
Définit quels types de contrôles d'édition doivent être utilisés pour les champs CHAR et VARCHAR. Les valeurs permises sont : Par défaut, l'ancien comportement est utilisé, c'est à dire input.

$cfg['ZipDump'] booléen
$cfg['GZipDump'] booléen
$cfg['BZipDump'] booléen
Définit si on utilise la compression zip/GZip/BZip2 lors de la création de fichiers d'exportation.

$cfg['CompressOnFly'] booléen
Définit si on autorise la compression à la volée pour des exportations au formats GZip/BZip2. Ceci n'affecte pas les plus petites exportations et permet d'en créer de plus grandes, qui sans cela, ne tiendraient pas en mémoire, à cause de la limitation mémoire de php. Produit des fichiers contenant plus d'en-têtes GZip/BZip2, mais tous les programmes courants les manipulent correctement.

$cfg['LightTabs'] chaîne
Si défini à True, utilise des onglets graphiquement moins consommateurs pour l'unité centrale.

$cfg['PropertiesIconic'] chaîne
Si défini à True, affichera des icônes au lieu d'un texte pour les liens de propriétés des bases de données et des tables (comme 'Afficher', 'Sélectionner', 'Insérer', ...).
Peut être paramétré à 'both' si vous voulez les icônes et le texte.
Quand il est défini à False, n'affiche que le texte.

$cfg['PropertiesNumColumns'] entier
Définit le nombre de colonnes qui seront utilisées pour afficher les tables dans la vue propriété de la base de données. Par défaut, une colonne. En définissant cette variable à une valeur supérieure à un, le type de la base de données sera omis pour offrir plus de place pour l'affichage.

$cfg['DefaultTabServer'] chaîne
Définit l'onglet affiché par défaut dans la vue serveur. Les valeurs autorisées sont : «main.php» (recommandé pour les configurations multi-utilisateurs), «server_databases.php», «server_status.php», «server_variables.php», «server_privileges.php» ou «server_processlist.php».

$cfg['DefaultTabDatabase'] chaîne
Définit l'onglet affiché par défaut pour la vue base de données. Les valeurs autorisées sont : «db_details_structure.php», «db_details.php» ou «db_search.php».

$cfg['DefaultTabTable'] chaîne
Définit l'onglet affiché par défaut dans la vue table. Les valeurs autorisées sont : «tbl_properties_structure.php», «tbl_properties.php», «tbl_select.php» ou «tbl_change.php».

$cfg['MySQLManualBase'] chaîne
Si défini sur une URL qui pointe vers la documentation de MySQL (le type dépend de $cfg['MySQLManualType']), les liens d'aide appropriés sont générés.
Voir la Page de documentation MySQL pour plus de renseignements sur les manuels de MySQL et leurs types.

$cfg['MySQLManualType'] chaîne
Type de documentation MySQL :
$cfg['DefaultLang'] chaîne
Définit la langue par défaut à utiliser, si ce n'est pas le cas, la configuration du navigateur ou celle de l'utilisateur sera utilisée.
Voir le script select_lang.inc.php pour connaître les valeurs autorisées pour ce paramètre.

$cfg['Lang'] chaîne
Force : toujours utiliser cette langue (doit être défini dans le script select_lang.inc.php).

$cfg['DefaultCharset'] chaîne
Page de code utilisée pour le recodage des requêtes MySQL. Ceci doit être activé et est décrit par l'option $cfg['AllowAnywhereRecoding'].
Vous pouvez donner ici n'importe quelle page de code se trouvant dans le tableau $cfg['AvailableCharsets'] et il s'agit seulement du choix par défaut, l'utilisateur peut choisir n'importe laquelle d'entre elles.

$cfg['AllowAnywhereRecoding'] booléen
Permet le recodage de la page de code des requêtes MySQL. Vous avez besoin de la prise en charge de recode ou iconv (compilés ou en tant que modules) dans PHP pour permettre le recodage des requêtes MySQL et le fichier de langue utilisée doit avoir cette option activée (par défaut, seulement celles qui sont en Unicode, pour éviter de perdre des caractères).

$cfg['RecodingEngine'] chaîne
Pour pouvez choisir ici quelles fonctions seront utilisées pour la conversion de page de code. Les valeurs autorisées sont :
Par défaut à auto.

$cfg['IconvExtraParams'] chaîne
Spécifie des paramètres pour iconv utilisés dans la conversion de page de code. Voir la documentation iconv pour plus de renseignements.

$cfg['AvailableCharsets'] tableau
Pages de code disponibles pour la conversion MySQL. Vous pouvez ajouter la vôtre (n'importe laquelle prise en charge par recode/iconv) ou supprimer celle dont vous ne vous servez pas. Les pages de code seront affichées dans le même ordre que celui défini ici; aussi, si vous en utilisez fréquemment quelques-unes, faites les figurer en début de tableau.

$cfg['GD2Available'] chaîne
Spécifie si GD est disponible en version 2 ou ultérieure. Si c'est le cas, il peut être utilisé pour les transformations MIME.
Les valeurs autorisées sont :
Par défaut à auto.

$cfg['LeftWidth'] entier
Largeur du cadre de gauche en pixels.

$cfg['LeftBgColor'] chaîne [couleur HTML]
$cfg['RightBgColor'] chaîne [couleur HTML]
Les couleurs d'arrière-plan (HTML) utilisées pour les deux cadres.

$cfg['RightBgImage'] chaîne
L'URI de l'image de fond utilisée pour le cadre de droite. Elle doit être absolue.
 
$cfg['LeftPointerColor'] chaîne [couleur HTML]
La couleur (HTML) utilisée pour le pointeur dans le cadre de gauche (ne fonctionne pas avec Netscape 4).

$cfg['Border'] entier
Taille de la bordure d'une table.

$cfg['ThBgcolor'] chaîne [couleur HTML]
La couleur (HTML) utilisée pour les en-têtes de table.

$cfg['BgcolorOne'] chaîne [couleur HTML]
La couleur (HTML) pour les premiers enregistrements de table.

$cfg['BgcolorTwo'] chaîne [couleur HTML]
La couleur (HTML) pour les seconds enregistrements de table.

$cfg['BrowsePointerColor'] chaîne [couleur HTML]
$cfg['BrowseMarkerColor'] chaîne [couleur HTML]
Les couleurs (HTML) utilisées pour le pointeur et le marqueur en mode affichage (ne fonctionne pas avec Netscape 4).
La première met en surbrillance l'enregistrement sur lequel passe votre souris et la dernière vous permet de marquer/démarquer les enregistrements en cliquant dessus.
Vous pouvez désactiver ces deux fonctionnalités en laissant vides leurs directives respectives.

$cfg['TextareaCols'] entier
$cfg['TextareaRows'] entier
$cfg['CharTextareaCols'] entier
$cfg['CharTextareaRows'] entier
Nombre de colonnes et d'enregsitrements pour les zones de texte.
Cette valeur sera multipliée par 2 pour les zones de texte de requête SQL et par 1,25 pour les zones de texte SQL à l'intérieur de la fenêtre de requête.
Les valeurs Char* sont utilisées pour l'édition de CHAR et VARCHAR (si configurées dans $cfg['CharEditing']).

$cfg['LongtextDoubleTextarea'] booléen
Définit si la zone de texte pour les champs LONGTEXT doit avoir une taille double.

$cfg['TextareaAutoSelect'] booléen
Définit si toute la surface de la zone de texte de la boîte de requête sera sélectionnée en cliquant dessus.

$cfg['CtrlArrowsMoving'] booléen
Permet le déplacement entre les champs à l'aide de Ctrl + flèches de direction lors de l'édition.

$cfg['LimitChars'] entier
Nombre maximum affiché de caractères dans tout champ non numérique en mode Afficher. Peut être désactivé par un bouton radio dans la page en cours.

$cfg['ModifyDeleteAtLeft'] booléen
$cfg['ModifyDeleteAtRight'] booléen
Définit l'endroit où les liens modifier et supprimer seront affichés quand le contenu des tables est affichée (vous pouvez les voir affichés à la fois à gauche et à droite). «Gauche» et «droite» sont traduits par «haut» et «bas» en mode d'affichage vertical.

$cfg['DefaultDisplay'] chaîne
$cfg['HeaderFlipType'] chaîne
Il existe trois modes d'affichage : 'horizontal', 'horizontalflipped' et 'vertical'. Définit lequel est affiché par défaut. Le premier mode affiche chaque enregistrement sur une ligne horizontale, le second fait pivoter les en-têtes de  90 degrés, de la sorte vous pouvez utiliser des en-têtes descriptifs même si les champs contiennent de petites valeurs et les imprimer. Le mode vertical trie chaque enregistrement verticalement.

Le paramètre HeaderFlipType peut être défini à 'css' ou 'faked'. En utilisant 'css' la rotation de l'en-tête dans le mode 'horizontalflipped' est faite par la feuille de style (CSS). S'il est défini à 'faked ', PHP fait la transformation pour vous, mais bien sûr, ce ne sera pas aussi beau qu'avec la feuille de style.

$cfg['DefaultPropDisplay'] chaîne
En modifiant/créant de nouvelles colonnes dans une table, tous les champs sont normalement alignés sur une ligne. (par défaut : 'horizontal'). Si vous le définissez à 'vertical', vous aurez chaque champ aligné verticalement. Vous pouvez économiser beaucoup de place dans le sens horizontal, sans avoir à scroller.

$cfg['ShowBrowseComments'] booléen
$cfg['ShowPropertyComments'] booléen
En définissant la variable correspondante à TRUE, vous pouvez afficher les commentaires de colonnes en mode Navigation ou Propriétés. En mode navigation, les commentaires sont affichés à l'intérieur de l'en-tête. En mode propriétés, les commentaires sont affichés en utilisant une feuille de style qui met une ligne de tirets sous le nom du champ. Le commentaire est montré en tant qu'info-bulle pour ce champ.

$cfg['UploadDir'] chaîne
Le nom du répertoire où les fichiers SQL ont été transférés autrement qu'avec phpMyAdmin (ftp, par exemple). Ces fichiers sont disponibles sous forme d'une liste déroulante quand vous cliquez sur le nom d'une base de données, puis l'onglet SQL.

Veuillez noter que le nom des fichiers doit avoir le suffixe «.sql» (ou «.sql.bz2» ou «.sql.gz» si la gestion des formats compressés est activée).

Cette fonctionnalité est utile quand votre fichier est trop gros pour être transféré en HTTP, ou quand les transferts de fichiers sont désactivés dans PHP.

Veuillez noter également que si PHP est exécuté en mode sécurisé, ce répertoire doit appartenir au même utilisateur que le propriétaire des scripts.

$cfg['docSQLDir'] chaîne
Le nom du répertoire où les fichiers docSQL peuvent être transférés pour être importés dans phpMyAdmin.

Veuillez noter que si PHP est exécuté en mode sécurisé, ce répertoire doit appartenir au même utilisateur que le propriétaire des scripts.

$cfg['SaveDir'] chaîne
Le nom du répertoire où les fichiers d'exportation peuvent être sauvegardés.

Veuillez noter que le répertoire doit être accessible en écriture à l'utilisateur du serveur web.

Veuillez noter également que si PHP est exécuté en mode sécurisé, ce répertoire doit appartenir au même utilisateur que le propriétaire des scripts.
$cfg['Export'] tableau
Dans ce tableau sont définis les paramètres par défaut pour les fichiers d'exportation; les noms des items sont similaires aux textes vus dans la page d'exportation, de la sorte vous pouvez facilement identifier ce qu'ils signifient.

$cfg['RepeatCells'] entier
Répète les en-têtes toutes les X cellules, ou 0 pour désactiver.

$cfg['QueryFrame'] booléen
$cfg['QueryFrameJS'] booléen
$cfg['QueryFrameDebug'] booléen
$cfg['QueryWindowWidth'] entier
$cfg['QueryWindowHeight'] entier
$cfg['QueryHistoryDB'] booléen
$cfg['QueryWindowDefTab'] chaîne
$cfg['QueryHistoryMax'] entier
Toutes ces variables affectent la nouvelle fenêtre/cadre de requête. Quand $cfg['QueryFrame'] est défini à true, un nouveau cadre est intégré à gauche sur une petite surface. Cliquer dessus provoque l'ouverture  d'une interface pour saisir les requêtes SQL.

Quand $cfg['QueryFrameJS'] est défini à true, cliquer sur ce lien ouvre une nouvelle fenêtre de navigateur de taille personnalisée ($cfg['QueryWindowWidth'], $cfg['QueryWindowWidth'] - les deux paramètres sont des entiers exprimant la taille en pixels). Si défini à false, cliquer sur ce lien n'ouvre que la zone de saisie SQL dans le cadre principal.

L'utilisation, de la fenêtre de requête JavaScript est recommandée si vous avez un navigateur gérant le JavaScript. Les fonctions de bases sont utilisées pour échanger quelques variables, aussi, la plupart des navigateurs de 4ème génération doivent être capables d'utiliser cette fonctionnalité. Actuellement, cela a été seulement testé avec Internet Explorer 6 et Mozilla 1.x.

Si $cfg['QueryHistoryDB'] est défini à TRUE, toutes vos requêtes sont journalisées dans une table, que vous devez créer (voir $cfg['Servers'][$i]['history']). Si il est défini à FALSE, toutes vos requêtes seront ajoutées au formulaire, mais elles seront sauvegardées seulement tant que votre fenêtre est ouverte.

En utilisant la fenêtre de requête basée sur JavaScript, elle sera toujours mise à jour quand vous cliquez sur une nouvelle table/base de données à afficher et se réduira si vous cliquez sur «Modifier SQL» après avoir utilisé une requête. Vous pouvez supprimer la mise à jour de la fenêtre de requête en cochant la case «Ne pas écraser cette requête depuis une autre fenêtre» sous la zone de texte de requête. Alors vous pouvez afficher des tables/bases de données en arrière-plan sans perdre le contenu de la zone de texte, ce qui est particulièrement pratique quand vous faites des requêtes sur des tables dont vous devez d'abord regarder le contenu. La case sera automatiquement cochée chaque fois que vous changez le contenu de la zone de texte. Décochez cette case si jamais vous vouliez que la fenêtre de requêtes soit toujours mise à jour, même si vous avez fait des modifications.

Si $cfg['QueryHistoryDB'] est défini à TRUE, vous pouvez spécifier le nombre d'entrées dans l'historique en utilisant $cfg['QueryHistoryMax'].

La fenêtre de requêtes a également des onglets pour regrouper les fonctionnalités. En utilisant la variable $cfg['QueryWindowDefTab'] vous pouvez spécifier l'onglet par défaut à utiliser à l'ouverture de la fenêtre de requêtes. Elle peut être définie à 'sql', 'files', 'history' ou 'full'.

La variable $cfg['QueryFrameDebug'] peut être utilisée par les développeurs pour l'intégration de futures fonctionnalités plus facilement.

$cfg['BrowseMIME'] booléen
Active les Transformations-MIME.

$cfg['MaxExactCount'] entier
Détermine pour quelle taille de tables phpMyAdmin doit obtenir le nombre de lignes exact avec SELECT COUNT. Si le compte approximatif de lignes est inférieur à cette valeur, SELECT COUNT sera utilisé, sinon, la valeur renvoyée sera seulement SHOW TABLE STATUS.

$cfg['WYSIWYG-PDF'] booléen
Utilise un contrôle d'édition WYSIWYG pour placer facilement les éléments d'une page PDF. En cliquant sur le bouton 'Éditeur visuel' dans la page sur laquelle vous éditez les coordonnées x/y de ces éléments, vous pouvez activer un éditeur visuel où tous vos éléments sont placés. En cliquant sur un élément, vous pouvez le déplacer dans la zone prédéfinie et les coordonnées x/y seront mises à jour dynamiquement. De même, si vous entrez directement une nouvelle position dans le champ de saisie, la nouvelle position dans l'éditeur visuel change après que vos curseurs aient quitté le champ de saisie.
Vous devez cliquer sur le bouton 'OK' en-dessous des tables pour sauvegarder les nouvelles positions. Si vous voulez placer un nouvel élément, ajoutez-le d'abord à la table des éléments et alors vous pourrez déplacer ce nouvel élément.
En changeant la taille du papier et l'orientation, vous changez également la taille de l'éditeur visuel. Vous pouvez le faire en changeant seulement le champ déroulant au-dessous, et l'éditeur visuel se réajustera automatiquement, sans interférer avec les positions des éléments en cours.
Si un élément sortait du champ, vous pouvez soit agrandir la taille du papier, soit cliquer sur le bouton 'Réinitialiser les valeurs' pour placer tous les éléments les uns en-dessous des autres.
REMARQUE : Vous devez utiliser un navigateur récent comme IE6 ou Mozilla pour que ce contrôle puisse fonctionner. La fonctionnalité de script Drag&Drop  a été empruntée à www.youngpup.net et sa licence sous-jacente si spécifique.

$cfg['NaturalOrder'] booléen
Trie les noms des bases de données en ordre naturel (par exemple, t1, t2, t10). Actuellement mis en oeuvre dans le panneau de gauche (Mode allégé) et dans la vue Base de données, pour la liste des tables.

$cfg['DefaultQueryTable'] chaîne
$cfg['DefaultQueryDatabase'] chaîne
Requête par défaut qui sera affichée dans les boîtes de requêtes, quand l'utilisateur n'en spécifie aucune. Utilisez %d pour le nom de base de données et %t pour le nom de table.

$cfg['SQP']['fmtType'] chaîne [html|none]
L'utilisation principale du nouvel analyseur syntaxique SQL est de permettre un affichage de requêtes SQL plus clair. Par défaut, nous utilisons HTML pour mettre en page la requête, mais vous pouvez désactiver ce paramètre en définissant cette variable à 'none'.

$cfg['SQP']['fmtInd'] flottant
$cfg['SQP']['fmtIndUnit'] chaîne [em|px|pt|ex]
Pour un affichage plus clair des requêtes SQL, dans certains cas, la partie d'une requête à l'intérieur de parenthèses est indentée. En changeant $cfg['SQP']['fmtInd'] vous pouvez modifier l'importance de cette indentation.
Dans le même ordre d'idée, $cfg['SQP']['fmtIndUnit'] spécifie les unités de la valeur de l'indentation que vous avez spécifié. Ceci est utilisé pour les feuilles de style.

$cfg['SQP']['fmtColor'] tableau de tuples chaîne
Ce tableau est utilisé pour définir les couleurs pour chaque type d'élément de requêtes SQL afin de les lire plus facilement. Le format du tuple est :
classe => [code couleur HTML | chaîne vide]
Si vous spécifiez une chaîne vide pour la couleur d'une classe, elle est ignorée lors de la création de la feuille de style. Vous ne devez pas modifier les noms de classes, seulement les chaînes couleur.
Clé pour le nom de classe :

$cfg['SQLValidator']['use'] booléen
phpMyAdmin gère maintenant l'utilisation du service Mimer SQL Validator, tel qu'il a été publié sur Slashdot.
Pour trouver de l'aide sur le paramétrage de votre système pour utiliser ce service, voir la section partie 6.14 de la FAQ.

$cfg['SQLValidator']['username'] chaîne
$cfg['SQLValidator']['password'] chaîne
La service SOAP vous permet de vous connecter avec anonymous et n'importe quel mot de passe, aussi nous les utilisons par défaut. Par contre, si vous avez un compte de connexion, vous pouvez mettre ici vos détails de connexion, et ils seront utilisés à la place de la connexion anonyme.

$cfg['DBG']['enable'] booléen
DÉVELOPPEURS SEULEMENT!
Active l'extension DBG pour le débogage phpMyAdmin. Nécessaire pour analyser le code.
Pour l'aide dans le paramétrage de votre système avec cette fonctionnalité, voir la section Développeurs.
 
$cfg['DBG']['profile']['enable'] booléen
DÉVELOPPEURS SEULEMENT!
Active la gestion de l'analyse pour phpMyAdmin. Ceci ajoutera un gros paquet de données à la fin de chaque page affichée dans la fenêtre principale avec les statistiques d'analyse pour cette page.
Vous aurez peut-être besoin d'augmenter le temps maximum d'exécution pour que cela fonctionne correctement.
 
$cfg['DBG']['profile']['threshold'] flottant (unités en millisecondes)
DÉVELOPPEURS SEULEMENT!
Quand un audit de données est affiché, cette variable contrôle le seuil d'affichage pour chaque audit de données, fondé sur le temps moyen que chacun a pris. S'il est supérieur au seuil, il est affiché, sinon il n'est pas affiché. Ceci prend une valeur en millisecondes. Dans la plupart des cas, vous n'avez pas besoin de modifier ce paramètre.
 
$cfg['ColumnTypes'] tableau
Tous les types possibles de colonnes MySQL. Dans la plupart des cas, vous n'avez pas besoin de modifier ce paramètre.

$cfg['AttributeTypes'] tableau
Attributs autorisés pour les champs. Dans la plupart des cas, vous n'avez pas besoin de modifier ce paramètre.

$cfg['Functions'] tableau
Une liste de fonctions que gère MySQL. Dans la plupart des cas, vous n'avez pas besoin de modifier ce paramètre.

$cfg['RestrictColumnTypes'] tableau
Mappage de types de colonnes utilisées pour l'affichage des fonctions favorites. Dans la plupart des cas, vous n'avez pas besoin de modifier ce paramètre.

$cfg['RestrictFunctions'] tableau
Les fonctions favorites pour la colonne méta-types comme définies dans $cfg['RestrictColumnTypes']. Dans la plupart des cas, vous n'avez pas besoin de modifier ce paramètre.

$cfg['DefaultFunctions'] tableau
Fonctions sélectionnées par défaut pour insérer/modifier un enregistrement. Les fonctions sont définies pour les méta-types de $cfg['RestrictColumnTypes'] et pour first_timestamp, qui est utilisé pour la première colonne d'horodatage dans une table.


Transformations

Introduction  -  Utilisation  -  Structure de fichier


[1. Introduction]

Pour permettre les transformations, vous devez paramétrer la table column_info et les directives appropriées. Veuillez consulter la section Configuration sur la manière de faire.


Vous pouvez appliquer différentes transformations au contenu de chaque champ. La transformation prendra le contenu de chaque champ et le transformera en fonction des règles définies dans la transformation sélectionnée.


Imaginons que vous ayez un champ 'nom_de_fichier' qui contient un nom de fichier. Normalement, vous ne verriez dans phpMyAdmin que ce nom de fichier. En utilisant les transformations, vous pouvez transformer ce nom de fichier en lien HTML, et ainsi cliquer sur la structure de phpMyAdmin sur le lien du champ et voir le fichier affiché dans une nouvelle fenêtre de navigateur. En utilisant les options de transformation, vous pouvez également spécifier des chaînes pour préfixer ou suffixer des chaînes ou d'autres formats pour lesquels vous voulez voir le résultat avec ces transformations.


Pour un aperçu général sur les transformations et leurs options, vous pouvez consulter la page <www.votre-hote.com>/<votre-repertoire-installation>/libraries/transformations/overview.php de votre installation.


Pour un tutoriel sur la façon d'utiliser efficacement les transformations, voir notre section Links sur la page d'accueil officielle de phpMyAdmin.


[2. Utilisation]

Consultez votre page tbl_properties.inc.php (c'est-à-dire, atteindre la page en cliquant le lien 'Propriétés' d'une table). Cliquez alors sur «Modifier» (ou l'icône Modifier) et alors vous verrez trois nouveaux champs à la fin de la ligne qui sont : 'Type MIME', 'Transformation' et 'Options de transformation'.



[3. Structure de fichier]

Tous les types mime et leurs transformations sont définis dans des fichiers dans le répertoire 'libraries/transformations/'.


Ils sont emmagasinés dans des fichiers pour faciliter la personnalisation et l'ajout aisé de nouvelles transformations.


Parce que l'utilisateur ne peut pas mettre ses propres types mime, on garde l'assurance que les transformations fonctionnent toujours. Cela n'a pas de sens d'appliquer une transformation à un type mime, que la fonction de transformation ne sait pas manipuler.


On peut, cependant, utiliser des types mime vides et des transformations globales qui fonctionnent pour beaucoup de types mime. Vous pouvez aussi utiliser des transformations sur des types mime différents de ceux pour lesquels elles ont été construites, mais faites attention aux options d'utilisation tout comme à l'action qu'aura la transformation sur votre champ.


Il y a un fichier de base appelé 'global.inc.php'. Cette fonction peut être incluse dans n'importe quelle autre transformation et fournit des fonctions de base.


Il y a cinq noms de fichiers possibles :

  1. Une transformation typemime+soustype :

    [typemime]_[soustype]__[transformation].inc.php

    Veuillez noter que typemime et soustype sont séparés par '_', qui ne doit pas être contenu dans leurs noms. La transformation fonction/nomfichier ne doit contenir que des caractères qui ne posent pas de problème pour le système de fichier et pour la convention de nommage de fonction de PHP.

    La fonction de transformation sera appelée 'transformation_PMA_[typemime]_[soustype]__[transformation]()'.

    Exemple :

    text_html__formatted.inc.php
    PMA_transform_text_html__formatted()
  2. Une transformation de type mime (sans sous-type) :

    [typemime]__[transformation].inc.php

    Veuillez noter qu'il n'y a pas de caractère '_' isolé. La transformation fonction/nomfichier doit contenir seulement des caractères qui ne posent pas de problème pour le système de fichier et pour la convention de nommage de PHP.

    La fonction de transformation sera appelée 'transformation_PMA_[typemime]__[transformation]()'.

    Exemple :

    text__formatted.inc.php
    transformation_PMA_text__formatted()
  3. Une transformation typemime+soustype sans fonction de transformation spécifique

    [typemime]_[soustype].inc.php

    Veuillez noter qu'il n'y a pas de caractère '_' dans le fichier. N'utilisez pas de caractères spéciaux dans le nom de fichier posant des problèmes avec le système de fichiers.

    Aucune fonction de transformation n'est définie dans le fichier lui-même.

    Exemple :

    text_plain.inc.php
    (Pas de fonction)
  4. Une transformation de type mime (sans sous-type) sans fonction de transformation spécifique

    [typemime].inc.php

    Veuillez noter qu'il n'y a pas de caractère '_' dans le nom de fichier. N'utilisez pas de caractères spéciaux dans le nom de fichier posant des problèmes avec le système de fichiers.

    Aucune fonction de transformation n'est définie dans le fichier lui-même.

    Exemple :

    text.inc.php
    (Pas de fonction)
  5. Une fonction de transformation globale sans type mime spécifique

    global__[transform].inc.php

    La fonction de transformation sera appelée 'transformation_PMA_global__[transform]()'.

    Exemple :

    global__formatted
    transformation_PMA_global__formatted()

Utilisez donc généralement  '_' pour séparer le type mime du sous-type, et '__' pour annoncer la fonction de transformation.


Tous les fichiers ne contenant pas '__' ne sont pas affichés en tant que fonctions de transformation valides dans la liste déroulante.


Veuillez consulter le fichier libraries/transformations/TEMPLATE pour ajouter votre propre fonction de transformation. Veuillez consulter le fichier libraries/transformations/TEMPLATE_MIMETYPE pour ajouter un type mime sans fonction de transformation. Veuillez également prendre en compte l'introduction à la description de fonction dans les fichiers de langue. Pour chaque fonction une variable $strTransformation_[nomfichier sans .inc.php] doit exister.


Vous pouvez utiliser le générateur de modèles pour créer de nouvelles fonctions et des entrées dans le fichier de langue.


Pour créer une nouvelle fonction de transformation, veuillez consulter libraries/transformations/template_generator.sh. Pour créer un nouveau type mime vide, veuillez consulter libraries/transformations/template_generator_mimetype.sh.


Une fonction de transformation a toujours besoin de trois variables :

  1. $buffer - contient le texte de la colonne. C'est le texte que vous voulez transformer.
  2. $options - contient toutes les options passées par l'utilisateur à la fonction de transformation sous forme de tableau.
  3. $meta - contient un objet avec une information de champ pour votre colonne. L'information est tirée du résultat de la fonction mysql_fetch_field(). Cela signifie, que toutes les propriétés décrites sur la page manuel sont disponibles dans cette variable et peuvent être utilisées pour transformer un champ en accord avec les propriétés unsigned/zerofill/not_null/...
    La variable $meta->mimetype contient le type MIME original du champ (c'est-à-dire 'text/plain', 'image/jpeg', etc.)

FAQ - Foire Aux Questions

Serveur  -  Configuration  -  Limitations  -  Multi-utilisateur  -  Navigateurs  -  Astuces d'utilisation  -  Projet  -  Sécurité


Veuillez jeter un oeil à notre section Links sur la page d'accueil officielle de phpMyAdmin pour une revue détaillée des fonctionnalités de phpMyAdmin et/ou de son interface.


[1. Serveur]

[1.1] J'utilise PHP 4+ et mon serveur plante chaque fois qu'une action spécifique est requise ou renvoie une page blanche ou pleine de signes cabalistiques à mon navigateur, que puis-je faire?

Il y a quelques bogues PHP recensés pour le cache des résultats (ouput buffering) et la compression.
Essayez de paramétrer la directive $cfg['OBGzip'] à FALSE dans votre fichier config.inc.php et la directive zlib.output_compression à OFF dans votre fichier de configuration php.
De plus, nous connaissons de tels problèmes en relation avec les «release candidates» (RC) de PHP 4.2.0 (testé avec PHP 4.2.0 RC1 à RC4) avec MS Internet Explorer. Veuillez mettre à jour votre version de PHP à 4.2.0.

[1.2] Mon serveur Apache plante en utilisant phpMyAdmin.

Vous devez tout d'abord essayer les dernières versions de Apache (et si possible de MySQL).
Veuillez également voir l'autre entrée de la FAQ sur les bogues de PHP avec le cache de résultats (output buffering).
Si votre serveur continue à planter, veuillez demander de l'aide dans les divers groupes d'entraide de Apache.

[1.3] J'utilise phpMyAdmin avec le mode d'authentification par cookie avec PHP 4.2.0 ou 4.2.1 chargé en tant que module de Apache 2+, mais je ne peux pas entrer dans le script : j'ai toujours l'écran de connexion qui s'affiche.

C'est un bogue connu de PHP (voir ce rapport de bogue) recensé dans la base de données officielle de bogues de PHP. Cela signifie qu'il n'y a pas et qu'il n'y aura pas de correctif phpMyAdmin pour corriger cela parce qu'il n'y a pas de moyen pour coder ce correctif.

[1.4] J'utilise phpMyAdmin avec IIS, et j'obtiens le message d'erreur : «L'application CGI spécifiée a mal fonctionné en ne renvoyant pas de jeu complet d'en-têtes HTTP...».

Vous avez juste oublié de lire le fichier install.txt de la distribution php. Consultez le dernier message dans ce rapport de bogue de la base de données officielle de bogues de PHP.

[1.5] J'utilise phpMyAdmin avec IIS, et je suis confronté à des plantages et/ou beaucoup de messages d'erreur avec l'authentification HTTP ou le mode d'authentification avancé.

Ceci est un problème connu du filtre ISAPI de PHP : il n'est pas très stable. Pour plus d'informations et de tests complets, voir les messages postés par André B. connu sous le  pseudo «djdeluxe76» dans ce fil de discussion du forum phpWizard.
Veuillez utiliser plutôt le mode d'authentification par cookie.

[1.6] Je ne peux pas utiliser phpMyAdmin avec PWS : rien ne s'affiche!

Cela semble être un bogue de PWS. Filippo Simoncini a trouvé une solution de rechange (pour le moment, il n'y a pas de meilleur moyen) : supprimez ou mettez en commentaire les déclarations DOCTYPE (deux lignes) des scripts header.inc.php, header_printview.inc.php, index.php, left.php et libraries/common.lib.php.

[1.7] Comment puis-je compresser avec GZip ou Bzip un fichier d'exportation ou un export CSV. Il semble que cela ne fonctionne pas.

Ces fonctionnalités sont basées sur les fonctions PHP gzencode() et bzcompress() pour être plus indépendantes de la plateforme (Unix/Windows, Mode sécurisé ou non, et ainsi de suite). Aussi, vous devez avoir PHP4 >= 4.0.4 et la gestion Zlib/Bzip2 (--with-zlib and --with-bz2).
Nous avons été confrontés à des plantages de PHP en essayant de télécharger un fichier d'exportation avec MS Internet Explorer en utilisant phpMyAdmin avec une release candidate de PHP 4.2.0. Dans ce cas, vous devrez changer pour la version PHP 4.2.0 finale.

[1.8] Je ne peux pas insérer un fichier texte dans une table, et j'obtiens une erreur concernant le mode sécurisé qui est utilisé.

Votre fichier transféré est sauvegardé dans votre «répertoire de transfert», tel que défini dans le fichier php.ini par la variable upload_tmp_dir (habituellement, le répertoire système par défaut est /tmp).
Nous vous recommandons le paramétrage suivant pour les serveurs Apache exécutés en mode sécurisé, pour activer les transferts de fichiers tout en étant raisonnablement sécurisés :

[1.9] J'ai des problèmes quand je transfère des fichiers. En général, le transfert de fichiers ne fonctionne pas sur mon système et les fichiers transférés comportent l'en-tête Content-Type: sur la première ligne.

Ce n'est pas vraiment phpMyAdmin qui est en cause mais plutôt RedHat 7.0. Vous utilisez RedHat 7.0 et vous avez mis à jour votre paquetage RPM PHP vers php-4.0.4pl1-3.i386.rpm, n'est-ce pas?
Donc le problème est que ce paquetage a un sérieux bogue qui a été corrigé il y a pas mal de temps dans PHP (28-01-2001 : voir le système Bug Tracker de PHP pour plus de détails). Le problème est que ce paquetage bogué est toujours disponible bien qu'il soit corrigé (voir RedHat's BugZilla pour plus de détails).
Aussi, veuillez télécharger le paquetage corrigé (4.0.4pl1-9) et le problème devrait disparaître.
Et cela corrige le problème \r\n avec les transferts de fichiers!

[1.10] J'ai des problèmes en transférant des fichiers avec phpMyAdmin exécuté sur un serveur sécurisé. Mon navigateur est Internet Explorer et j'utilise un serveur Apache.

Comme l'a suggéré «Rob M» dans le forum phpWizard, ajoutez cette ligne dans votre fichier httpd.conf:
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
Il semble que cela supprime beaucoup de problèmes entre Internet Explorer et SSL.

[1.11] J'obtiens 'open_basedir restriction' en téléchargeant un fichier depuis la boîte de requête.

Depuis la version 2.2.4, phpMyAdmin gère les serveurs avec les restrictions open_basedir. En supposant que la restriction vous autorise à ouvrir des fichiers dans le répertoire en cours ('.'), tout ce que vous avez à faire est de créer un répertoire 'tmp' dans le répertoire d'installation de phpMyAdmin, avec les permissions 777 et le même propriétaire que celui du répertoire phpMyAdmin. Les fichiers transférés seront déplacés ici, et supprimés après l'exécution de vos commandes SQL.

[1.12] J'ai perdu le mot de passe de super-utilisateur de MySQL, que puis-je faire?

Le manuel MySQL explique comment réinitialiser les permissions.

[1.13] J'obtiens une erreur 'Aucune requête SQL !' en exécutant un signet.

Si PHP n'a pas d'accès en lecture/écriture à son répertoire upload_tmp_dir, il ne peut pas accéder à la requête transférée.

[1.14] J'obtiens une erreur 'Aucune requête SQL !' en essayant d'exécuter une requête depuis la zone de texte adéquate.

Vérifiez la directive post_max_size dans votre fichier de configuration PHP et essayez de l'augmenter.

[1.15] J'ai des problèmes avec les noms de champs mysql.user .

Dans les anciennes versions de MySQL, les champs User et Password étaient nommés user et password. Veuillez modifier vos noms de champs pour qu'ils s'adaptent aux standards en vigueur.

[1.16] Je ne peux pas transférer de gros fichiers d'exportation (problèmes de mémoire, http ou de temporisation - timeout).

Les premières choses à vérifier (ou à demander à votre fournisseur d'accès de vérifier) sont les valeurs upload_max_filesize, memory_limit et post_max_size dans le fichier de configuration php.ini.
L'ensemble de ces trois paramètres limitent la taille maximale des données qui peuvent être soumises par PHP. Un utilisateur a également dit que post_max_size et memory_limit doivent être plus grandes que upload_max_filesize.
Si vous avez un problème de temporisation, consultez la variable $cfg['UploadDir'].

[1.17] Quelles versions de MySQL sont gérées par phpMyAdmint?

Toutes les versions MySQL de la version 3.23.32 jusqu'à la version 4.0 sont totalement gérées. Veuillez noter que plus votre version de MySQL est ancienne, plus vous serez confronté à des limitations.
phpMyAdmin fournit la gestion expérimentale de MySQL 4.1 et 5.0. Cela signifie que, bien que vous ayez assigné un jeu de caractères à une table ou un champ, phpMyAdmin ne recodera pas les données lors de l'insertion ou de l'extraction. Au lieu de cela, il utilisera le jeu de caractères que vous avez spécifié pour la connexion MySQL. La nouvelle extension améliorée de MySQL (mysqli), est également gérée à titre expérimental.
En compilant php, nous recommandons fortement de lier manuellement l'extension MySQL à une bibliothèque client MySQL d'au moins la même version mineure, puisque celle qui est fournie avec les distributions de php actuelles est plutôt ancienne et pourrait causer des problèmes (voir également FAQ 1.17a).
MySQL 5.1 n'est pas encore géré.

[1.17a] Je ne peux pas me connecter au serveur MySQL. Il renvoie toujours le message d'erreur, «Le client ne gère pas le protocole d'authentification requis par le serveur; envisagez de mettre à jour votre client MySQL».

Vous avez essayé d'accéder à MySQL avec une ancienne bibliothèque client MySQL. La version de votre bibliothèque client MySQL peut être vérifiée dans le résultat de votre fonction phpinfo().
En général, elle devrait avoir au moins la même version mineure que votre serveur - comme cela est précisé dans FAQ 1.17.
Le seul moyen de corriger ce problème est de compiler manuellement php et son extension MySQL avec une bibliothèque client MySQL récente.
Si vous êtes toujours confronté à ce problème, veuillez compiler votre bibliothèque client MySQL avec la même version ou une version plus récente de MySQL.

[1.18] J'utilise MySQL <= 4.0.1 en ayant lower_case_table_names défini à 1. Si je crée une table avec une lettre en majuscule dans son nom, elle est changée en minuscule. Mais si j'essaie de SUPPRIMER cette table, MySQL n'est pas capable de trouver le fichier correspondant.

C'est un bogue de MySQL <= 4.0.1. Veuillez mettre à jour au moins à la version MySQL 4.0.2 ou désactivez votre directive lower_case_table_names.

[1.19] Je ne peux pas utiliser la fonctionnalité «Afficher les relations» parce que le script semble ne pas connaître la police que j'utilise!

La bibliothèque «FPDF» que nous utilisons pour cette fonctionnalité nécessite des fichiers spéciaux pour utiliser les polices.
Veuillez vous référer au manuel FPDF pour construire ces fichiers.


[1.20] Je reçois l'erreur «PHP ne peut charger l'extension MySQL, veuillez vérifier votre configuration de PHP».

Pour se connecter à un serveur MySQL, PHP a besoin d'un jeu de fonctions MySQL appelées «extension MySQL». Cette extension peut faire partie de la distribution PHP (intégrée), sinon elle doit être chargée dynamiquement. Son nom est vraisemblablement mysql.so ou php_mysql.dll. phpMyAdmin a essayé de charger l'extension mais a échoué.

D'habitude le problème est résolu en installant un paquetage nommé «PHP-MySQL» ou quelque chose de similaire.

[1.21] J'utilise la version CGI de PHP sous Unix, et je ne peux pas me connecter en utilisant l'authentification par cookie.

Dans le fichier php.ini, définissez mysql.max_links à une valeur supérieure à 1.

[1.22] Je ne vois pas le champ «Emplacement du fichier texte», aussi je ne peux pas transférer.

Ceci est dû très probablement au fait que dans votre fichier php.ini, votre paramètre file_uploads n'est pas défini à «on».


[1.23] J'exécute MySQL sur une machine Win32. Chaque fois que je crée une nouvelle table, les noms de la table et des champs sont convertis en lettres minuscules!

Ceci arrive parce que la directive MySQL lower_case_table_names est définie par défaut à 1 (ON) dans la version Win32 de MySQL. vous pouvez changer ce comportement en changeant simplement la directive à 0 (OFF) :
Éditez votre fichier my.ini qui doit se trouver dans votre répertoire Windows et ajouter la ligne suivante au groupe [mysqld] :
set-variable = lower_case_table_names=0
Ensuite, sauvegardez le fichier et redémarrez le service MySQL. Vous pouvez toujours vérifier la valeur de cette directive en utilisant la requête suivante
SHOW VARIABLES LIKE 'lower_case_table_names';

[1.24] Des caractères sont tronqués dans mes requêtes, ou j'obtiens des caractères ajoutés aléatoirement. J'utilise PHP 4.2.3.

C'est un bogue de PHP 4.2.3.

[1.25] J'utilise Apache avec mod_gzip-1.3.26.1a sur Windows XP, et j'ai des problèmes, comme par exemple, des variables non définies quand j'exécute une requête SQL.

Une astuce de Jose Fandos : mettez en commentaire les deux lignes suivantes dans votre fichier httpd.conf, comme ceci :
# mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"
car cette version de mod_gzip sur Apache (Windows) a des problèmes pour manipuler les scripts PHP. Bien sûr, vous devrez redémarrer Apache.

[1.26] Je viens d'installer phpMyAdmin dans le document racine de IIS mais j'obtiens l'erreur «Le fichier spécifié est introuvable» quand j'essaie d'exécuter phpMyAdmin.

C'est un problème de permission. Faites un clic droit sur le dossier phpmyadmin et sélectionner Propriétés. Dans l'onglet Sécurité, cliquez sur «Ajouter» et sélectionner l'utilisateur «IUSER_machine» à partir de la liste. Définissez maintenant ses permissions et cela devrait fonctionner.

[1.27] J'obtiens une page vide lorsque je veux voir une très grosse page (par exemple, db_details_structure.php avec beaucoup de tables).

C'est un bogue PHP qui survient quand le cache de résultats GZIP (output buffering) est activé. Si vous le désactivez (en définissant $cfg['OBGzip'] = FALSE dans votre fichier config.inc.php), cela devrait fonctionner. Ce bogue sera corrigé dans PHP version 5.0.0.

[1.28] Mon serveur MySQL refuse quelquefois des requêtes et renvoie le message 'Errorcode: 13'. Qu'est-ce que cela signifie?

Cela peut arriver à cause d'un bogue de MySQL quand vous avez des noms de base de données/tables avec des caractères en majuscules bien que lower_case_table_names soit défini à 1. Pour corriger ceci, désactivez cette directive, convertissez tous les noms de vos tables et base de données en minuscules et réactivez-la. Il y a également un correctif disponible à partir de MySQL 3.23.56 / 4.0.11-gamma.

[1.29] Quand je crée une table ou que je modifie un champ, j'obtiens une erreur et les champs sont dupliqués.

Il est possible de configurer Apache de telle façon que PHP a des problèmes en interprétant les fichiers .php.

Les problèmes surviennent quand deux jeux de directives différents (et en conflit) sont utilisés :

SetOutputFilter PHP
SetInputFilter PHP
&
AddType application/x-httpd-php .php

Dans le cas que nous avons constaté, un jeu de directives était dans le fichier /etc/httpd/conf/httpd.conf, alors que l'autre était dans le fichier /etc/httpd/conf/addon-modules/php.conf.
La manière recommandée est AddType, mettez seulement en commentaire le premier jeu de lignes et redémarrez Apache :

#SetOutputFilter PHP
#SetInputFilter PHP

[1.30] J'obtiens l'erreur «left.php: Missing hash».

Ce problème est connu pour survenir quand le serveur exécute Turck MMCache, mais la mise à jour de MMCache en version 2.3.21 résoud le problème.


[2. Configuration]

[2.1] Le message d'erreur «Warning: Cannot add header information - headers already sent by ...» est affiché, quel est le problème?

Éditez votre fichier config.inc.php ou .php et assurez-vous qu'il n'y a rien (c'est-à-dire pas de ligne blanche, pas d'espace, pas de caractère...) ni devant la balise <?php au début du fichier, ni après la balise ?> à la fin du fichier.

[2.2] phpMyAdmin ne peut pas se connecter à MySQL. Qu'est-ce qui ne va pas?

Il y a soit une erreur dans votre configuration PHP, soit votre utilisateur/mot de passe. Essayez de faire un petit script qui utilise mysql_connect et voyez s'il fonctionne. Si ce n'est pas le cas, il se peut que vous n'ayez pas compilé la gestion de MySQL dans PHP.

[2.3] Le message d'erreur «Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)...» est affiché . Que puis-je faire?


Pour les utilisateurs RedHat, Harald Legner suggère ceci sur la liste de diffusion :

Sur mon système RedHat le socket de MySQL est /var/lib/mysql/mysql.sock. Dans votre fichier php.ini vous trouverez une ligne
    mysql.default_socket = /tmp/mysql.sock
changez-la pour :
    mysql.default_socket = /var/lib/mysql/mysql.sock
Redémarrez alors Apache et cela fonctionnera.

Voici un correctif proposé par Brad Ummer dans le forum phpwizard :

Consultez également la section correspondante dans la documentation MySQL.

[2.4] Rien ne s'affiche dans mon navigateur quand j'essaie d'exécuter phpMyAdmin, que puis-je faire?

Essayez de définir la directive $cfg['OBGZip'] à FALSE dans le fichier de configuration de phpMyAdmin. Cela aide parfois.
Veuillez également regarder le numéro de version de PHP : s'il contient «4.0b...» cela signifie que vous exécutez une version beta de PHP. Ce n'est pas une très bonne idée, veuillez mettre à jour dans une version stable.

[2.5] Chaque fois que je veux insérer ou modifier un enregistrement ou supprimer une base de données ou une table, une erreur 404 (page introuvable) est affichée; ou, avec l'authentification HTTP ou par cookie, on me demande de me reconnecter. Qu'est-ce qui ne va pas?

Vérifier la valeur que vous avez définie dans votre directive $cfg['PmaAbsoluteUri'] dans votre fichier de configuration phpMyAdmin.

[2.6] J'obtiens une erreur «Access denied for user: 'root@localhost' (Using password: YES)» en essayant d'accéder un serveur MySQL sur un hôte dont le port est redirigé sur mon ordinateur hôte local

Quand vous utilisez un port sur votre ordinateur local, que vous redirigez à l'aide d'une redirection de port vers un autre hôte, MySQL ne résoud pas le nom d'hôte local comme il le devrait.
Erik Wasser explique : La solution est : si votre hôte est «localhost», MySQL (l'outil de commande en ligne 'mysql' aussi) essaie toujours d'utiliser la connexion socket pour accélérer les choses. Et cela ne fonctionne pas dans cette configuration avec redirection de port.
Si vous mettez «127.0.0.1» comme nom d'hôte, tout est correct et MySQL utilise la connexion TCP.


[3. Limitations connues]


[3.1] En utilisant l'authentification HTTP, un utilisateur qui se déconnecte ne peut pas se reconnecter avec le même compte.

Cela est dû au mécanisme du protocole d'authentification utilisé par phpMyAdmin. Pour contourner ce problème : fermez toutes les fenêtres de navigateur ouvertes et retournez dans phpMyAdmin. Vous devriez être en mesure de vous reconnecter.

[3.2] En exportant une grosse table en mode compressé, j'obtiens une erreur de limitation mémoire ou une erreur de dépassement de limite de temps.

Les fichiers d'exportations compressés sont construits en mémoire et à cause de cela sont limités par la limite mémoire de php. Pour les exportations GZip/BZip2, ceci peut être outrepassé depuis la version 2.5.4 en utilisant $cfg['CompressOnFly'] (activé par défaut). Les exportations Zip ne peuvent pas être traitées de cette façon, donc si vous avez besoin de fichiers Zip pour des exportations plus importantes, vous devrez utiliser un autre moyen.

[3.3] Avec les tables InnoDB, je perds les relations de clés étrangères quand je renomme ou quand je modifie une table.

Cela semble être un bogue de InnoDB (corrigé dans MySQL 3.23.50?).

[3.4] Je n'arrive pas à importer des fichiers d'exportation que j'ai créés avec l'outil mysqldump fourni dans la distribution de MySQL serveur.

Le problème vient du fait que mysqldump crée des commentaires invalides comme ceci :

-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54

La partie invalide du code est la ligne horizontale de tirets qui apparaît une fois dans chaque fichier d'exportation créé avec mysqldump. Si vous voulez utiliser votre fichier d'exportation, vous devrez le transformer en code valide MySQL. Cela signifie que vous devrez ajouter une espace après les deux premiers tirets de la ligne ou ajouter un # devant :
-- -------------------------------------------------------
ou
#---------------------------------------------------------

[3.5] En utilisant des dossiers imbriqués ($cfg['LeftFrameTableSeparator']) il y a de multiples hiérarchies qui sont mal affichées?!

Veuillez noter que vous ne devez pas utiliser la chaîne de séparation plusieurs fois sans insérer de caractère entre ces chaînes, ou au début/fin de votre nom de table. Si vous devez le faire, cherchez un autre séparateur de table ou désactivez la fonctionnalité.

[3.6] Qu'est-ce qui n'est actuellement pas géré par phpMyAdmin avec InnoDB?

Dans la vue Gestion des relations, être en mesure de choisir une table dans une autre base de données, ou avoir plus d'un champ dans la clé étrangère.

Dans Query-by-example (Query), la génération automatique de la requête LEFT JOIN à partir d'une table étrangère.

[3.7] J'ai une table avec beaucoup de champs (100+) et quand j'essaie d'afficher la table, j'obtiens une série d'erreurs du genre «Warning: unable to parse url». Comment corriger cela?

Votre table n'a pas de clé primaire ou de clé unique, ce qui oblige à utiliser une expression longue pour identifier cette ligne. Cela pose des problèmes à la fonction parse_url. La solution de rechange est de créer une clé primaire ou une clé unique.

[3.8] Je ne peux pas utiIiser de formulaires HTML (cliquables) dans des champs où j'ai mis une transformation MIME!

À cause d'un container de formulaires (utilisé pour les cases à cocher de suppression de plusieurs lignes), les formulaires imbriqués ne peuvent pas être mis à l'intérieur de la table ou phpMyAdmin affiche les résultats. Vous pouvez cependant utiliser tout formulaire à l'intérieur d'une table si vous gardez le container de formulaires parent avec la cible tbl_row_delete.php et mettez vos éléments de saisie à l'intérieur. Si vous utilisez un champ de soumission de saisie personnalisé, le formulaire sera soumis lui-même vers la page d'affichage à nouveau, où vous pouvez valider les $HTTP_POST_VARS dans une transformation. Pour un tutoriel sur la façon d'utiliser efficacement les transformations, voir notre section Links sur la page d'accueil officielle de phpMyAdmin.

[3.9] J'obtiens des messages d'erreur en utilisant «--sql_mode=ANSI» pour le serveur MySQL

Quand MySQL est exécuté en mode de compatibilité ANSI, il y a des différences majeures dans la façon dont SQL est structuré (voir http://www.mysql.com/doc/en/ANSI_mode.html). Le plus important, le caractère guillemet (") est interprété en tant que caractère guillemet identifiant et non comme le caractère guillemet annonçant une chaîne, ce qui provoque des requêtes SQL invalides dans beaucoup d'opérations internes de phpMyAdmin. Il n'y a pas de solution de rechange à ce comportement. Des nouvelles sur ce sujet seront postées dans le rapport de bogue #816858

[3.10] Homonymes et pas de clé primaire : Quand les résultats d'un SELECT affiche plus d'une colonne avec la même valeur (par exemple SELECT nom from employes where prenom like 'A%' et que deux valeurs «Smith» sont affichées), si je clique sur Modifier, je ne peux pas être sûr que je modifie la bonne ligne.

Veuillez vous assurer que votre table a une clé primaire, ainsi phpMyAdmin peut l'utiliser pour les liens  Modifier et Effacer.


[4. FAI, installation multi-utilisateurs ]

[4.1] Je suis un FAI. Puis-je configurer une seule copie centralisée de phpMyAdmin ou dois-je faire l'installation pour chaque client.

Depuis la version 2.0.3, vous pouvez configurer une copie centralisée de phpMyAdmin pour tous vos utilisateurs. Le développement de cette fonctionnalité a été aimablement sponsorisé par NetCologne GmbH. Ceci requiert une configuration correcte de la gestion des utilisateurs MySQL et l'utilisation de l'authentification HTTP ou par cookie pour phpMyAdmin. Voir la section Installation sur «Utiliser les modes d'authentification».

[4.2] Quel est le meilleur moyen de sécuriser phpMyAdmin contre les attaques malicieuses.

Cela dépend de votre système.
Si vous utilisez un serveur qui ne peut pas être accédé par d'autres personnes, il est suffisant d'utiliser la protection de répertoire fournie avec votre serveur web (avec Apache vous pouvez utiliser les fichiers .htaccess, par exemple).
Si d'autres personnes ont un accès telnet à votre serveur, vous devriez utiliser la fonctionnalité d'authentification HTTP de phpMyAdmin.

Suggestions:

[4.3] J'obtiens des erreurs sur l'impossibilité d'inclure un fichier dans /lang ou dans /libraries.

Vérifier votre fichier php.ini, ou demander à votre administrateur système de le faire. include_path doit contenir «.» dans ses chemins et open_basedir, s'il est utilisé, doit contenir «.» et «./lang» pour permettre un fonctionnement normal de phpMyAdmin.


[4.4] phpMyAdmin donne toujours «Accès refusé» en utilisant l'authentification HTTP.

Cela peut arriver pour différentes raisons :

[4.5] Est-il possible de laisser les utilisateurs créer leurs propres bases de données?

À partir de la version 2.2.5, dans la page de gestion des utilisateurs, vous pouvez mettre un méta-caractère dans le nom de la base de données pour un utilisateur (par exemple «joe%»), et mettre les privilèges que vous voulez. Par exemple, en ajoutant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER permettra à un utilisateur de créer/administrer sa(ses) base(s) de données.

[4.6] Comment puis-je utiliser en plus l'authentification basée sur l'hôte?

Si vous avez des règles existantes d'un ancien fichier .htaccess, vous pouvez le prendre et ajouter le nom d'utilisateur entre les chaînes 'deny'/'allow' et 'from'. Utiliser le méta-caractère '%' pour le nom d'utilisateur est un grand avantage si votre installation est adaptée pour l'utiliser. Ensuite, vous pouvez ajouter ces lignes mises à jour dans le tableau $cfg['Servers'][$i]['AllowDeny']['rules'].

Si vous voulez un exemple préfabriqué, vous pouvez essayer celui-ci. Il empêche l'utilisateur 'root' de se connecter à partir de n'importe quels réseaux autres que les réseaux IP privés.
    //empêche root de se connecter sauf à partir des réseaux privés
    $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
    $cfg['Servers'][$i]['AllowDeny']['rules'] = array(
        'deny root from all',
        'allow root from localhost',
        'allow root from 10.0.0.0/8',
        'allow root from 192.168.0.0/16',
        'allow root from 172.16.0.0/12',
        );

[4.7] La fenêtre d'authentification est affichée plus d'une fois, pourquoi?

Ceci arrive si vous utilisez une URL pour démarrer phpMyAdmin qui est différente de celle définie dans votre $cfg['PmaAbsoluteUri']. Par exemple, s'il manque «www», ou si vous entrez une adresse IP alors qu'un nom de domaine est défini dans le fichier de configuration.


[5. Navigateurs et système d'exploitation client]

[5.1] J'obtiens une erreur «out of memory», ou mes contrôles ne sont plus fonctionnels, en essayant de créer une table avec plus de 14 champs.

Nous n'avons pu reproduire ce problème que sous Win98/98SE. En testant avec WinNT4 ou Win2K, nous avons pu facilement créer plus de 60 champs.
Une solution de rechange est de créer un plus petit nombre de champs, puis de revenir dans les propriétés de votre table et d'ajouter les autres champs.

[5.2] Avec Xitami 2.5b4, phpMyAdmin ne traite pas les champs formulaires.

Ce n'est pas un problème de phpMyAdmin problem mais un bogue connu de Xitami : vous rencontrerez ce problème chaque fois qu'un script/site web utilise des formulaires.
Mettez à jour ou descendez d'une version votre serveur Xitami.

[5.3] J'ai des problèmes d'exportation de table avec Konqueror (phpMyAdmin 2.2.2).

Avec Konqueror 2.1.1 : les fichiers d'exportation simples, zip et GZip fonctionnent bien, sauf que le nom de fichier proposé pour le fichier d'exportation est toujours 'tbl_dump.php'. Les fichiers d'exportation Bzip2 ne semblent pas fonctionner.
Avec Konqueror 2.2.1 : les fichiers d'exportation simples fonctionnent; les fichiers d'exportation zip sont placés dans le répertoire temporaire de l'utilisateur, aussi, ils doivent être déplacés avant de fermer Konqueror, sinon ils disparaissent. Les fichiers d'exportation GZip donnent un message d'erreur.
Des tests ont besoin d'être réalisés pour Konqueror 2.2.2.

[5.4] Je ne peux pas utiliser le mode d'authentification par cookie car Internet Explorer ne stocke jamais les cookies.

MS Internet Explorer semble être très bogué à propos des cookies, au moins jusqu'à la version 6. Et grâce à Andrew Zivolup, nous avons également repéré un bogue PHP 4.1.1 dans ce domaine!
Donc, si vous exécutez PHP 4.1.1, essayez de mettre à jour ou de descendre de version... ça peut marcher!

[5.5] Dans Internet Explorer 5.0, j'obtiens des messages d'erreur JavaScript quand je navigue dans mes enregistrements.

Mettez à jour au moins en version Internet Explorer 5.5 SP2.

[5.6] Dans Internet Explorer 5.0, 5.5 ou 6.0, j'obtiens une erreur (comme «Page introuvable») en essayant de modifier un enregistrement dans une table avec beaucoup de champs, ou avec un champ texte.

Votre table n'a pas de clé primaire ni de clé unique, aussi nous devons utiliser une URL longue pour identifier cette ligne. Il y a une limite de longueur dans ces navigateurs, et cela ne se produit pas avec Netscape, par exemple. La solution de rechange est de créer une clé primaire ou une clé unique, ou d'utiliser un autre navigateur.

[5.7] Je rafraîchis (actualise) mon navigateur, et je reviens à la page de bienvenue.

Certains navigateurs gèrent le clic-droit dans le cadre que vous voulez rafraîchir, faites cela dans le cadre approprié.

[5.8] Avec Mozilla 0.9.7 j'ai des problèmes en envoyant une requête modifiée dans la boîte de requêtes.

Cela ressemble à un bogue de Mozilla : la version 0.9.6 était OK. Nous garderons ce bogue à l'esprit pour les futures versions de Mozilla.

[5.9] Avec Mozilla 0.9.? à 1.0 et Netscape 7.0-PR1, je ne peux pas taper d'espace dans le zone d'édition de requête SQL : la page défile vers le bas.

Ceci est un bogue Mozilla (voir bogue #26882 sur BugZilla).

[5.10] Avec Netscape 4.75, j'obtiens des lignes vides entre chaque ligne de données dans un fichier exporté au format CSV.

C'est un bogue connu de Netscape 4.75 : il ajoute des lignes en exportant des données en mode flux d'octets (octet-stream). Comme nous ne pouvons pas détecter la version spécifique de Netscape incriminée, nous ne pouvons pas contourner ce bogue.

[5.11] Les caractères ASCII-étendu comme le tréma (umlaut allemand) sont mal affichés.

Veuillez vous assurer que vous avez paramétré le jeu de caractères de votre navigateur sur l'un des fichiers de langue que vous avez choisi dans la page de démarrage de phpMyAdmin. Vous pouvez également essayer le mode auto detection, mode qui est géré par les versions récentes de la plupart des navigateurs.

[5.12] Apple OS X : le navigateur Safari change les caractères spéciaux en "?".

Ce problème a été rapporté par un utilisateur Mac OS X, qui ajoute que Chimera, Netscape et Mozilla n'ont pas ce problème.

[5.13] Avec Internet Explorer 5.5 ou 6, et l'authentification HTTP, je ne peux pas administrer deux serveurs : je me connecte au premier, puis au second, mais si je reviens au premier, je dois m'identifier à chaque fois.

C'est un bogue de Internet Explorer, les autres navigateurs ne se comportent pas de cette manière.

[5.14] En utilisant Opera6, je peux obtenir l'authentification, mais rien ne se passe après, seulement une page blanche.

En ayant $cfg['QueryFrameJS'] défini à TRUE, cela conduit à un bogue dans Opera6, parce qu'il n'est pas capable d'interpréter les définitions de cadres écrites en JavaScript. Veuillez mettre à jour vers Opera7 au moins.


[6. Utiliser phpMyAdmin]

[6.1] Je ne peux pas insérer de lignes dans une table / je ne peux pas créer une table - MySQL renvoie une erreur SQL.

Examinez l'erreur SQL avec attention. Le problème est souvent provoqué par la spécification d'un mauvais type de champ.
Les erreurs usuelles sont :

Regardez également le chapitre syntaxe dans le manuel MySQL pour confirmer que votre syntaxe est correcte.

[6.2] Quand je crée une table, je clique sur la case à cocher Index pour deux champs et phpMyAdmin ne génère qu'un seul index avec ces deux champs.

Dans phpMyAdmin 2.2.0 et 2.2.1, c'est la façon de créer un index multi-champs. Si vous voulez deux index, créer le premier en créant la table, sauvegardez, puis affichez les propriétés de la table et cliquez sur le lien Index pour créer l'autre index.

[6.3] Comment puis-je insérer une valeur nulle dans ma table?

Depuis la version 2.2.3, il y a une case à cocher pour chaque champ qui peut être nul. Avant la version 2.2.3, vous deviez entrer «null», sans les guillemets, comme valeur du champ. Depuis la version 2.5.5, vous devez utiliser la case à cocher pour obtenir une réelle valeur NULL, aussi, si vous entrez «NULL» cela signifie que vous voulez un NULL littéral dans le champ et non une valeur NULL (cela fonctionne dans PHP4).

[6.4] Comment puis-je sauvegarder ma base de données ou ma table?

Cliquer sur le nom d'une base de données ou d'une table dans le cadre de gauche, les propriétés seront affichées. Ensuite, dans le menu, cliquer sur «Exporter», vous pouvez exporter la structure, les données ou les deux. Cela générera des requêtes SQL qui pourront être utilisées pour recréer votre base de données ou votre table.

Vous aurez besoin de choisir «Transmettre», de sorte que phpMyAdmin puisse transmettre le fichier d'exportation résultant à votre station. En fonction de votre configuration PHP, vous verrez les options de compression de votre fichier d'exportation. Voir également la variable de configuration $cfg['ExecTimeLimit'].

Pour une aide supplémentaire sur ce sujet, chercher le mot «export» dans ce document.

[6.5] Comment puis-je restaurer (transmettre) ma base de données ou ma table en utilisant un fichier d'exportation? Comment puis-je exécuter un fichier «.sql».

Cliquer sur le nom d'une base de données dans le cadre de gauche, les propriétés seront affichées. Alors dans la section «Exécuter une ou des requêtes sur la base ...», tapez votre nom de fichier d'exportation, ou cliquez sur le bouton Afficher. Puis cliquez sur Exécuter.

Pour de l'aide supplémentaire sur ce sujet, cherchez le mot «transm» dans ce document.

[6.6] Comment puis-je utiliser la table relation dans Query-by-example?

Voici un exemple avec les tables personnes, villes et pays, toutes situées dans la base de données mabdd. Si vous n'avez pas de table pma_relation, créez-la comme cela est décrit dans la section Configuration. Ensuite, créez les tables d'exemple :

     CREATE TABLE REL_pays (
       code_pays char(1) NOT NULL default '',
       description varchar(10) NOT NULL default '',
       PRIMARY KEY (code_pays)
     ) TYPE=MyISAM;

     INSERT INTO REL_pays VALUES ('C', 'Canada');

     CREATE TABLE REL_personnes (
       id tinyint(4) NOT NULL auto_increment,
       nom_personne varchar(32) NOT NULL default '',
       code_ville varchar(5) default '0',
       code_pays char(1) NOT NULL default '',
       PRIMARY KEY (id)
     ) TYPE=MyISAM;

     INSERT INTO REL_personnes VALUES (11, 'Marc', 'S', '');
     INSERT INTO REL_personnes VALUES (15, 'Paul', 'S', 'C');

     CREATE TABLE REL_villes (
       code_ville varchar(5) NOT NULL default '0',
       description varchar(30) NOT NULL default '',
       PRIMARY KEY (code_ville)
     ) TYPE=MyISAM;

     INSERT INTO REL_villes VALUES ('S', 'Sherbrooke');
     INSERT INTO REL_villes VALUES ('M', 'Montréal');

Pour configurer les liens appropriés et afficher l'information :

Puis tester comme suit :



[6.7] Comment puis-je utiliser la fonctionnalité «Champ à afficher»?

À partir de l'exemple précédent, créez la table pma_table_info comme expliqué dans la section Configuration, puis parcourez votre table personnes, et déplacez votre souris au-dessus du code ville ou du code pays.

Voir également la partie 6.21 de la FAQ pour une fonctionnalité additionnelle que «Champ à afficher» permet : une liste déroulante des valeurs possibles.


[6.8] Comment puis-je produire un schéma PDF de ma base de données?

D'abord vous devez renseigner les variables de configuration «relation», «table_coords» et «pdf_pages».

Ensuite, réfléchissez à la mise en page de votre schéma : quelles tables iront sur quelles pages.

[6.9] phpMyAdmin change le type de l'une de mes colonnes!

Non, c'est MySQL qui fait des changements silencieux de type de colonne.


[6.10] En créant un privilège, qu'arrive-t-il aux traits de soulignement (underscore) dans le nom de la base de données?

Si vous ne mettez pas de barre oblique inverse (backslash) avant le trait de soulignement, c'est un méta-caractère pour les autorisations, et le trait de soulignement signifie «tout caractère». Aussi, si le nom de base de données est «john_db», l'utilisateur aura des droits sur john1db, john2db...

Si vous mettez une barre oblique inverse devant le trait de soulignement, cela signifie que le nom de la base de données aura un vrai trait de soulignement.

[6.11] Quel est ce curieux symbole ø dans les pages de statistiques?

Il signifie «moyenne».


[6.12] Je veux comprendre certaines options de Exporter.

«Insertions complètes» ajoute les noms de colonnes sur chaque commande INSERT, pour une documentation plus détaillée (mais le fichier résultant est plus gros).
«Insertions étendues» fournit un fichier d'exportation plus petit en utilisant une seule fois le mot INSERT et le nom de la table.
«Protéger les noms des tables et des champs par des ` »  assure que les noms de champs et de tables formés avec des caractères spéciaux soient protégés.
«Inclure la valeur courante de l'AUTO_INCREMENT» assure que la valeur de l'AUTO_INCREMENT (s'il y en a) sera incluse dans la sauvegarde.
«Inclure sous forme de commentaires» inclut les commentaires des colonnes, des relations et des types MIME définis dans la base de données PMA-DB dasn le fichier d'exportation en tant que commentaires SQL (/* xxx */).

[6.13] J'aimerais créer une base de données avec un point dans son nom.

C'est une mauvaise idée, car dans MySQL la syntaxe «database.table» est la manière normale de référencer une base de données et un nom de table. Pire, MySQL vous laissera normalement créer cette base de données avec un point, mais alors vous ne pourrez pas travailler avec, ni la supprimer.


[6.14] Comment configurer le valideur de code SQL?

Pour l'utiliser, vous avez besoin d'une version très récente de PHP, la version 4.3.0 est recommandée, avec la gestion de XML, PCRE et PEAR. Sur votre système, en mode ligne de commande, exécuter «pear install Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP» pour obtenir les modules PEAR nécessaires à son utilisation.
Si vous l'utilisez, soyez conscient que toute requête SQL que vous exécutez sera stockée de manière anonyme (noms de base de données/table/colonne, chaînes, nombres sont remplacés avec des valeurs génériques). Le Mimer SQL Validator, est sous copyright © 2001 Upright Database Technology. Nous l'utilisons en tant que service SOAP gratuit.

[6.15] Je veux ajouter un champ BLOB et ajouter un index dessus, mais MySQL dit «BLOB column '...' used in key specification without a key length».

La bonne manière de faire cela, est de créer un champ sans index, puis d'afficher la structure de la table et d'utiliser le dialogue «Créer une clef». Sur cette page, vous pourrez alors choisir votre champ BLOB, et définir une taille pour l'index sur un champ BLOB.

[6.16] Comment puis-je me déplacer simplement dans une page remplie de champs modifiables?

Vous pouvez utiliser Ctrl+flèches sur la plupart des pages remplies de champs modifiables (structure de table, ligne modifiable, etc.) (ceci doit être activé dans la configuration - voir $cfg['CtrlArrowsMoving']). Vous pouvez également consulter la directive $cfg['DefaultPropDisplay'] ('vertical') et voir si cela vous aide pour les modifications.

[6.17] Transformations : je ne peux pas entrer mon propre type mime! À quoi peut bien servir cette f.... fonctionnalité alors?

Du calme :). Définir des types mime n'a pas d'utilité si on ne peut pas mettre de transformations dessus. Sinon vous pouvez seulement mettre un commentaire sur le champ. En entrant votre propre type mime, vous causerez de sérieux problèmes de vérification de syntaxe et de validation, et introduirez une situation de grand risque de mauvaise interprétation de saisie de l'utilisateur. Au lieu de cela, vous pouvez initialiser des types mime en utilisant des fonctions ou des définitions de types mime vides.
De plus, vous avez une vue d'ensemble de tous les types mime disponibles. Qui connaît tous ces types mime par coeur de sorte qu'il puisse les entrer à volonté?

[6.18] Signets : Où puis-je stocker les signets? Pourquoi aucun signet n'est visible en-dessous de la boîte de requête?

Toute requête que vous exécutez peut être stockée en tant que signet sur la page où sont affichés les résultats. Vous trouverez un bouton intitulé 'Conserver cette requête dans les signets' juste à la fin de la page.
Dès que vous avez stocké un signet, il est relié à la base de données dans laquelle vous avez exécuté la requête. Vous pouvez maintenant avoir accès à une liste déroulante de signets sur chacune des pages sur lesquelles la boîte de requête apparaît sur cette base de données.

Depuis phpMyAdmin 2.5.0, vous pouvez également stocker des variables pour les signets. Utilisez juste la chaîne /*[VARIABLE]*/ n'importe où dans votre requête. Tout ce qui est mis dans la boîte de saisie valeur sur la page de la boîte de requête remplacera la chaîne «/*[VARIABLE]*/» dans votre requête stockée. Notez que vous DEVEZ créer une requête valide, sinon elle ne sera même pas stockée dans votre base de données.
Rappelez-vous également que tout ce qui se trouve à l'intérieur de la chaîne /*[VARIABLE]*/ pour votre requête restera en l'état, mais sera débarassé des caractères /**/ . Donc vous pouvez utiliser :

/*, [VARIABLE] AS myname */

qui sera reproduit en

, VARIABLE as myname

dans votre requête, où VARIABLE est la chaîne que vous avez saisie dans la boîte de saisie. Si une chaîne vide est fournie, aucun remplacement ne sera effectué.

Un exemple plus complexe. Disons que vous avez stocké cette requête :

SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */

Imaginons que vous saisissiez «phpMyAdmin» comme variable pour votre requête stockée, la requête complète sera :

SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'

Vous pouvez utiliser de multiples occurrences de /*[VARIABLE]*/ dans une seule requête.
REMARQUEZ L'ABSENCE D'ESPACE à l'intérieur de la construction «/**/». Tout espace inséré sera plus tard également inséré en tant qu'espace dans votre requête et peut conduire à des résultats inattendus, particulièrement en utilisant l'expansion de variable dans une expression «LIKE ''».
Votre requête initiale que vous voulez stocker comme signet doit produire au moins une ligne de résultat pour pouvoir être stockée. Vous aurez peut-être besoin de tâtonner pour bien positionner les commentaires «/**/».

[6.19] Comment puis-je créer simplement un document LaTeX pour y inclure une table exportée?

Vous pouvez inclure simplement une table dans vos documents LaTeX, un exemple de document minimaliste devrait ressembler à celui qui suit (en supposant que vous avez une table exportée dans le fichier table.tex) :

\documentclass{article} % ou toute classe que vous désirez
\usepackage{longtable} % pour afficher la table
\begin{document} % début du document
\include{table} % inclure la table exportée
\end{document} % fin du document

[6.20] Dans MySQL 4, je vois beaucoup de bases de données qui ne sont pas à moi et que je ne peux accéder.

Faire la mise à jour vers MySQL 4 donne habituellement aux utilisateurs les privilèges globaux suivants : CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Ces privilèges permettent également aux utilisateurs de voir tous les noms de bases de données, jusqu'à ce que vous mettiez à jour les tables d'autorisation, comme cela est décrit dans le manuel MySQL, section 2.5.6. Voir ce rapport de bogue.

Donc si vos utilisateurs n'ont pas besoin de ces privilèges, vous pouvez les supprimer et la liste de leurs bases de données sera raccourcie.

[6.21] En mode modifier/insérer, comment puis-je voir une liste des valeurs possibles pour un champ, basée sur une table étrangère?

Vous devez configurer les liens appropriés entre les tables, ainsi que le «champ à afficher» (display field) dans la table étrangère. Voir la partie 6.6 de la FAQ pour un exemple. Ensuite, s'il y a 200 valeurs ou moins dans la table étrangère, une liste déroulante des valeurs sera disponible. Vous verrez deux listes de valeurs, la première liste contenant la clé et le champ à afficher, la seconde liste contenant le champ à afficher et la clé. La raison de cela est de permettre de taper la première lettre soit de la clé, soit du champ à afficher.

Pour 200 valeurs et plus, une fenêtre distincte apparaîtra, pour naviguer dans les valeurs des clés étrangères et en choisir une.

[6.22] Signets : Puis-je exécuter automatiquement en entrant en mode Afficher pour une table?

Oui. Si un signet a le même label qu'un nom de table, il sera exécuté.


[7. Projet phpMyAdmin]

[7.1] J'ai trouvé un bogue. Comment dois-je en informer les développeurs?

Notre Bug Tracker est situé sur http://sourceforge.net/projects/phpmyadmin/ sous la section Bugs.

Mais s'il vous plaît, veuillez d'abord en discuter avec d'autres utilisateurs :
http://sourceforge.net/projects/phpmyadmin/ (puis choisir Forums)

[7.2] Je veux traduire les messages dans une nouvelle langue ou mettre à jour une langue existante, où dois-je commencer?

Commencez toujours par utiliser la version en cours sur le CVS pour votre langue. Pour une nouvelle langue, commencer à partir de english-iso-8859-1.inc.php. Si vous ne savez pas comment obtenir la version CVS, veuillez demander à un des développeurs.
Veuillez noter que nous essayons de ne pas utiliser d'entités HTML comme &eacute; dans les traductions, puisque nous utilisons le bon jeu de caractères dans le fichier. Avec les entités HTML, le texte dans les messages JavaScript pourrait ne pas être affiché correctement. Cependant, il y a certaines entités qui ont besoin d'y figurer, pour les guillemets anglais «"» , les espaces non sécables, le «et» commercial «&» , inférieur à «<» , supérieur à «>» .
Vous pouvez donc joindre votre traduction, en tant que fichier zip pour éviter de perdre les caractères spéciaux, sur le traqueur de traduction sur sourceforge.net.
Ce serait une bonne idée de vous abonner à la liste de diffusion phpmyadmin-translators, parce que c'est là que nous demandons la traduction de nouveaux messages.

[7.3] Je voudrais aider au développement de phpMyAdmin. Comment dois-je procéder?

La méthode suivante est préférable pour les nouveaux développeurs :

  1. télécharger l'arbre CVS en cours en connexion anonyme :
    cvs -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin login
    [Mot de passe : taper simplement sur la touche Entrée]
    cvs -z3 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin
    [Ceci créera un nouveau sous-répertoire appelé phpMyAdmin]
  2. ajouter votre travail
  3. mettre les fichiers modifiés (au format tar ou gzip) dans le traqueur de patches sur le compte SourceForge phpMyAdmin.

L'accès en écriture à l'arbre CVS est autorisé seulement aux développeurs expérimentés qui ont déjà contribué de manière utile à phpMyAdmin.
Veuillez également consulter la section Développeurs.


[8. Sécurité ]

[8.1] Alerte de sécurité, du 18-06-2003.

Dernière mise à jour de cette FAQ : 22-07-2003.

L'équipe de développement de phpMyAdmin a reçu cette note sur une alerte de sécurité : http://www.securityfocus.com/archive/1/325641.

L'équipe regrette que l'auteur n'ait pas communiqué avec nous avant d'envoyer cette alerte. Cependant, voici notre réponse à ce jour, aux points mentionnés :


Information pour les développeurs

phpMyAdmin est un logiciel Open Source, aussi vous êtes invités à y contribuer. Beaucouip de fonctionnalités ont été écrites par d'autres personnes et vous aussi vous pouvez aider à faire de phpMyAdmin un outil utile.

Si vous projetez de contribuer aux sources, veuillez lire les informations suivantes :


Crédits

phpMyAdmin - Crédits
====================

CRÉDITS, par ordre chronologique
---------------------------------------------

                                * créateur du projet phpMyAdmin
                                * mainteneur de 1998 à l'été 2000


* version multilingue
* divers correctifs et améliorations
* analyste SQL (la plus grande partie)
* mainteneur actuel du projet


* démarrage du projet SourceForge phpMyAdmin en mars 2001
* synchronisation des différents arbres CVS existants avec de nouvelles fonctionnalités et correctifs
* améliorations multilingue, sélection dynamique de langue
* mainteneur actuel du projet
* beaucoup d'améliorations et de correctifs


* ré-écriture et optimisation JavaScript, DHTML et DOM
* ré-écriture des scripts pour qu'ils soienbt conformes aux normes de codage PEAR, génération de codes conformes à XHTML1.0 et CSS2
* amélioration du système de détection de langue
* beaucoup d'améliorations et de correctifs


* contrôles de maintenance de base de données
* table type code
* authentification IP hôte Allow/Deny
* configuration basée sur une base de données (non achevée)
* analyser SQL et mise en page améliorée
* valideur SQL
* beaucoup d'améliorations et de correctifs


* fonctionnalité signet
* fonctionnalité fichier d'exportation multiple
* fonctionnalité fichier d'exportation gzip
* fonctionnalité fichier d'exportation zip


* various fixes
* moderator of the phpMyAdmin users forum at phpwizard.net


* fonctionnalité «Insérer en tant que nouvel enregistrement»


* ré-écriture et correction du code pour l'exportation
* correctifs


* ré-écriture et correction du code pour l'exportation pour PHP4
* statistiques de tables mySQL
* correctifs


* auteur principal de la version 2.1.0.1
* correctifs


* exports XML
* fonctionnalités relatives à MySQL
* divers correctifs et fonctionnalités
* mise à jour du fichier de langue allemande


* jointures automatiques dans QBE
* liens de colonne dans «Version imprimable»
* vue «Gestion des relations»


* fonctionnalité de création/affichage d'index amélioré
* fonctionnalité pour utiliser un jeu de caractères différent pour l'HTML par rapport à MySQL
* amélioration de la fonctionnalité exportation
* divers correctifs et fonctionnalités
* mise à jour du fichier de langue tchèque


* suggestion du patch pour les versions imprimables de tables multiples


* patch pour l'affichage vertical d'enregistrements de table
* écriture de la fenêtre de requête basée sur Javascript based Query et de l'historique SQL
* améliorations des commentaires de colonne/base de données
* transformations MIME pour les colonnes
* utilisations d'alias personnalisés pour les nom de bases de données dans le cadre de gauche
* affichage de table hiérarchique/imbriqué
* éditeur visuel PDF pour des distributions WYSIWYG en PDF des relations
* nouveaux jeux d'icônes
* affichage vertical de la page de propriétés de colonne
* quelques correctifs, fonctionnalités, aide, ajouts dans le fichier de langue allemande


* fonctionnalité de conversion de code en japonais (kanji)


* le mode d'authentification par cookie


* fonctionnalité liens de relation de table


* génération de schéma PDF, merci également à Olivier Plathey pour la bibliothèque «FPDF» (voir http://www.fpdf.org/).


* serveur valideur SQL


* logo phpMyAdmin


* bibliothèque blowfish du projet Horde
* gestion de mysqli
* corrections de beaucoup de bogues et améliorations


Et aussi les personnes suivantes qui ont contribué à des changements mineurs,
des améliorations, des correctifs ou la gestion d'une nouvelle langue depuis la version 2.1.0 :

Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger, Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley, Bernard M. Piller, Laurent Haas, «Sakamoto», Yuval Sarna, www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec, Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, Luís V., Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai, Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, «Manuzhai».


Crédits originaux de la version 2.1.0
----------------------------------------------

Ce travail est basé sur MySQL-Webadmin de Peter Kuppelwieser. C'était son idée de créer une interface web pour MySQL en utilisant PHP3. Bien que je n'ai pas utilisé son code source, il y a quelques concepts que je lui ai empruntés. phpMyAdmin a été créé car Peter m'avait dit qu'il ne continuerait pas de futur développement de son (génial) outil.
Merci également à :

Les personnes suivantes ont contribué à des changement mineurs, des améliorations, des correctifs ou la gestion d'une nouvelle langue :
Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann, Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov, Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns, G. Wieggers.

Et merci à tous les autres qui m'ont envoyé des courriels avec des suggestions, des rapports de bogues ou juste des réactions.


Valid XHTML 1.0!      Valid CSS!