Bienvenue sur la documentation de phpMyAdmin !¶
Contenu :
Introduction¶
phpMyAdmin est un logiciel libre écrit en PHP qui a pour mission de s’occuper de l’administration d’un serveur de base de données MySQL ou MariaDB. Vous pouvez utiliser phpMyAdmin pour réaliser la plupart des tâches d’administration, ceci incluant la création de base de données, l’exécution de demandes, et l’ajout de comptes utilisateur.
Fonctionnalités prises en charge¶
Actuellement phpMyAdmin peut :
- créer, parcourir, éditer, et supprimer des bases de données, tables, vues, colonnes, et index
- afficher des ensembles de résultats multiples depuis des procédures ou des requêtes stockées
- créer, copier, supprimer, renommer et altérer des bases de données, tables, colonnes et index
- maintenir un serveur, des bases de données et tables, avec des propositions sur la configuration serveur
- exécuter, éditer et marquer n’importe quel SQL-déclaration, et même des requêtes par lot
- charger des fichiers texte dans des tables
- créer [1] et lire les listages de tables
- exporter des données [1] en divers formats : CSV, XML, PDF, ISO/IEC 26300 - OpenDocument (texte et feuille de calculs), Microsoft Word 2000, et LATEX
- importer des données et des structures MySQL depuis des fichiers OpenDocument (feuille de calculs), et aussi XML, CSV et SQL
- administrer plusieurs serveurs
- ajouter, éditer, et supprimer des comptes utilisateurs MySQL et des privilèges
- vérifier l’intégrité référentielle des tables MyISAM
- créer des graphiques PDF de la structure des bases de données
- rechercher globalement dans (un sous-ensemble d”)une base de données
- transformer les données stockées en n’importe quel format selon un jeu de fonctions prédéfinies, comme d’afficher des données BLOB en image ou en lien de téléchargement
- suivre les modifications dans les bases de données, tables et vues
- prendre en charge les tables InnoDB et les clés étrangères
- prendre en charge mysqli, l’extension MySQL améliorée, voir 1.17 Quelles versions de bases de données sont gérées par phpMyAdmin ?
- créer, éditer, appeler, exporter et supprimer des procédures et fonctions stockées
- créer, éditer, exporter et supprimer des évènements et déclencheurs
- communiquer en 80 langues différentes
Raccourcis clavier¶
Actuellement, phpMyAdmin prend en charge les raccourcis clavier suivants :
- k - Afficher/Masquer la console
- h - Aller à la page d’accueil
- s- Ouvrir les paramètres
- d + s - Aller à la structure de base de données (si dans une page relative à la base de données)
- d + f - Rechercher dans la base de données (si dans une page relative à la base de données)
- t + s - Aller à la structure de table (si dans une page relative à la table)
- t + f - Rechercher dans la table (si dans une page relative à la table)
- backspace - Retourner à la page précédente.
Un mot sur les utilisateurs¶
Beaucoup de personnes ont des difficultés à comprendre le concept de gestion des utilisateurs dans phpMyAdmin. Quand un utilisateur se connecte à phpMyAdmin, son nom d’utilisateur et mot de passe sont passés directement à MySQL. phpMyAdmin ne gère aucun compte utilisateur lui-même (à part permettre de manipuler les informations des comptes utilisateurs de MySQL) ; tous les utilisateurs doivent être des utilisateurs MySQL valides.
Notes de bas de page
[1] | (1, 2) phpMyAdmin peut compresser les listages (formats ZIP, GZip ou RFC 1952) et les exportations CSV si PHP prend en charge Zlib (--with-zlib ). La prise en charge complète pourrait aussi nécessiter des modifications dans le fichier php.ini . |
Prérequis¶
Serveur Web¶
Étant donné que l’interface de phpMyAdmin est entièrement orientée navigateur, vous devrez avoir à votre disposition un serveur web (tels Apache, nginx, IIS) sur lequel installer les fichiers de phpMyAdmin.
PHP¶
- Vous devez disposer de PHP 8.1.2 ou d’une version plus récente, avec la prise en charge de
session
, l’extension Standard PHP Library (SPL), la prise en charge de hash, ctype et JSON. - L’extension
mbstring
(voir mbstring) est fortement recommandée pour des raisons de performances. - Pour pouvoir télécharger des fichiers ZIP vers le serveur, vous avez besoin de l’extension PHP
zip
. - Vous avez besoin du module GD2 dans PHP pour afficher des vignettes intégrées de fichiers JPEG (« image/jpeg:inline ») avec le rapport hauteur / largeur original.
- Pour utiliser la méthode d’authentification par « cookie » (par défaut), l’extension openssl est fortement recommandée.
- Pour le support de la barre de progression lors du téléchargement des fichiers vers le serveur, voir 2.9 Afficher les barres de progression d’upload.
- Pour gérer l’importation de XML et de feuille de tableur Open Document, vous avez besoin de l’extension libxml.
- Pour supporter reCAPTCHA, vous avez besoin de l’extension openssl.
- Pour gérer l’affichage de la dernière version de phpMyAdmin, vous devez activer
allow_url_open
dans votre fichierphp.ini
ou avoir l’extension curl.
Base de données¶
phpMyAdmin prend en charge les bases de données compatibles MySQL.
- MySQL 5.5 ou supérieur
- MariaDB 5.5 ou supérieur
Navigateur¶
Pour accéder à phpMyAdmin, vous devez utiliser un navigateur acceptant les cookies et exécutant le JavaScript.
Vous devez avoir un navigateur supporté par Bootstrap 4.5, voir <https://getbootstrap.com/docs/4.5/getting-started/browsers-devices/>.
Modifié dans la version 5.2.0: Vous devez avoir un navigateur supporté par Bootstrap 5.0, voir <https://getbootstrap.com/docs/5.0/getting-started/browsers-devices/>.
Installation¶
phpMyAdmin n’applique pas de méthodes de sécurité particulières 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 Utilisateurs de phpMyAdmin peut être utilisée pour cela.
Distributions Linux¶
phpMyAdmin est fourni dans la plupart des distributions Linux. Il est recommandé d’utiliser les paquets de la distribution quand c’est possible - phpMyAdmin est généralement intégré dans votre distribution et les mises à jour de sécurité seront alors disponibles automatiquement.
Debian et Ubuntu¶
La plupart des versions de Debian et Ubuntu incluent un paquet phpMyAdmin, mais le fichier de configuration maintenu dans /etc/phpmyadmin
peut être différent de celui de la documentation officielle de phpMyAdmin. Plus spécifiquement, il permet :
- Configuration d’un serveur Web (fonctionne avec Apache et lighttpd).
- Création de Stockage de la configuration de phpMyAdmin en utilisant dbconfig-common.
- Sécurisation du script de paramétrage, voir Script de paramétrage sous Debian, Ubuntu et dérivés.
Des détails plus spécifiques sur l’installation des paquets Debian ou Ubuntu sont disponibles dans notre wiki.
Voir aussi
Plus d’informations disponibles dans README.Debian (il est installé sous /usr/share/doc/phpmyadmin/README.Debian
avec le paquet).
OpenSUSE¶
OpenSUSE contient déjà le paquet phpMyAdmin. Installez-le à partir du Service openSUSE Build.
Gentoo¶
Gentoo fourni le paquet phpMyAdmin, aussi bien dans une configuration proche du stock que dans une configuration webapp-config
. Utilisez emerge dev-db/phpmyadmin
pour installer.
Mandriva¶
Mandriva fournit le paquet phpMyAdmin dans la branche contrib
et peut être installé dans le Centre de contrôle.
Fedora¶
Fedora fournit le paquet phpMyAdmin, mais le fichier de configuration maintenu dans /etc/phpMyAdmin/
peut être différent de celui de la documentation officielle de phpMyAdmin.
Red Hat Enterprise Linux¶
Red Hat Enterprise Linux itself and thus derivatives like CentOS don’t
ship phpMyAdmin, but the Fedora-driven repository
Extra Packages for Enterprise Linux (EPEL)
is doing so, if it’s
enabled.
But be aware that the configuration file is maintained in
/etc/phpMyAdmin/
and may differ in some ways from the
official phpMyAdmin documentation.
Installation sur Windows¶
La manière la plus simple d’installer phpMyAdmin sous Windows est d’utiliser des produits tiers qui contiennent phpMyAdmin ainsi que le serveur de base de données et le serveur Web, comme XAMPP.
D’autres options similaires sont disponibles sur la page Wikipedia.
Installation à partir de Git¶
Quelques applications supplémentaires sont nécessaires pour installer depuis Git :
- Git pour télécharger la source, ou la source la plus récente directement depuis Github
- Composeur
- Node.js (version 14 ou plus)
- Yarn
Les sources actuelles de phpMyAdmin peuvent être clonées à partir de https://github.com/phpmyadmin/phpmyadmin.git
:
git clone https://github.com/phpmyadmin/phpmyadmin.git
Il faut de plus installer les dépendances en utilisant l’outil Composer :
composer update
Si vous ne comptez pas faire de développement, l’installation des outils développeurs peut être ignorée en invoquant :
composer update --no-dev
Enfin, il faudra utiliser Yarn pour installer quelques dépendances JavaScript :
yarn install --production
Installation au moyen de Composer¶
phpMyAdmin peut être installé au moyen de l’outil Composer. Depuis la version 4.7.0, les versions sont automatiquement répliquées vers le dépôt par défaut Packagist.
Note
Le contenu du dépôt Composer est généré automatiquement et séparément, donc le contenu n’est pas absolument identique à celui de l’archive téléchargée. Cependant, il ne devrait pas y avoir de différences fonctionnelles.
Pour installer phpMyAdmin, exécuter simplement :
composer create-project phpmyadmin/phpmyadmin
Il est aussi possible d’utiliser notre dépôt Composer qui contient l’archive et qui est disponible sur <https://www.phpmyadmin.net/packages.json> :
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
Installation au moyen de Docker¶
phpMyAdmin fournit une image Docker officielle facilement déployable. Elle est téléchargeable en utilisant :
docker pull phpmyadmin
Le serveur phpMyAdmin écoutera sur le port 80. Il prend en charge plusieurs méthodes pour configurer le lien vers le serveur de base de données, soit par la fonctionnalité de lien de Docker, en liant le conteneur de base de données à db
pour phpMyAdmin (en indiquant --link votre_serveur_de_base_de_données:db
) soit par les variables d’environnement (dans ce cas, il appartient à l’utilisateur de paramétrer la partie réseau dans Docker pour permettre au conteneur de phpMyAdmin d’accéder au conteneur de base de données par le réseau).
Variables d’environnement Docker¶
Plusieurs fonctionnalités de phpMyAdmin peuvent être configurées en utilisant les variables d’environnement :
-
PMA_ARBITRARY
¶ Permet de saisir le nom du serveur de base de données sur le formulaire de connexion.
Voir aussi
-
PMA_HOST
¶ Le nom d’hôte ou l’adresse IP du serveur de base de données à utiliser.
Voir aussi
-
PMA_HOSTS
¶ Une liste de noms d’hôtes ou d’adresses IP de serveurs de base de données à utiliser.
Note
Utilisé seulement si
PMA_HOST
est vide.
-
PMA_VERBOSE
¶ Nom complet du serveur de base de données.
Voir aussi
-
PMA_VERBOSES
¶ Une liste de noms d’hôtes complets, séparés par des virgules, de serveurs de base de données.
Note
Utilisé seulement si
PMA_VERBOSE
est vide.
-
PMA_USER
¶ Le nom d’utilisateur à utiliser pour Mode d’authentification par configuration.
-
PMA_PASSWORD
¶ Mot de passe à utiliser pour Mode d’authentification par configuration.
-
PMA_PORT
¶ Port du serveur de base de données à utiliser.
-
PMA_PORTS
¶ Une liste de ports du serveur de base de données à utiliser.
Note
Utilisé seulement si
PMA_PORT
est vide.
-
PMA_SOCKET
¶ Socket file for the database connection.
-
PMA_SOCKETS
¶ Comma-separated list of socket files for the database connections.
Note
Used only if
PMA_SOCKET
is empty.
-
PMA_ABSOLUTE_URI
¶ Le chemin complet (
https://pma.exemple.net/
) où le reverse proxy rend phpMyAdmin disponible.Voir aussi
-
PMA_QUERYHISTORYDB
¶ Si définit à true, active le stockage de l’historique de SQL dans
$cfg['Servers'][$i]['pmadb']
. Si false, l’historique sera stocké dans le navigateur et effacé à la déconnexion.Voir aussi
Voir aussi
-
PMA_QUERYHISTORYMAX
¶ Quand définit comme nombre entier, contrôle le nombre d’élément dans l’historique.
Voir aussi
-
PMA_CONTROLHOST
¶ Si définit, cela pointe vers un hôte de base de données alternatif utilisé pour stocker la base « Stockage de la configuration de phpMyAdmin ».
Voir aussi
-
PMA_CONTROLUSER
¶ Définit le nom d’utilisateur de phpMyAdmin pour utiliser la base de données « Stockage de la configuration de phpMyAdmin ».
Voir aussi
-
PMA_CONTROLPASS
¶ Définit le mot de passe de phpMyAdmin pour utiliser la base de données « Stockage de la configuration de phpMyAdmin ».
Voir aussi
-
PMA_CONTROLPORT
¶ Quand définit, cela surchargera le port par défaut (3306) pour se connecter à l’hôte de contrôle.
Voir aussi
-
PMA_PMADB
¶ Quand définit, spécifie le nom de la base de données à utiliser pour la base « Stockage de la configuration de phpMyAdmin ». Quand non définit, les fonctionnalités avancées ne seront pas activées par défaut : elles pourront toujours être activées pour un utilisateur quand il se connecte avec la fonctionnalité Zéro configuration.
Note
Valeurs suggérées : phpmyadmin or pmadb
Voir aussi
-
HIDE_PHP_VERSION
¶ Si elle est définie, cette option cachera la version de PHP (expose_php = Off). Définissez n’importe quelle valeur (comme HIDE_PHP_VERSION=true).
-
UPLOAD_LIMIT
¶ Si elle est définie, cette option remplacera la valeur par défaut pour apache et php-fpm (cela modifiera les valeurs de
upload_max_filesize
etpost_max_size
).Note
Format : [0-9+](K,M,G) la valeur par défaut est 2048K
-
MEMORY_LIMIT
¶ Si définit, cette option surchargera la limite mémoire
$cfg['MemoryLimit']
de phpMyAdmin et memory_limit de PHP.Note
Format : [0-9+](K,M,G) où K est pour kilo-octets, M pour méga-octet, G pour giga-octets et 1K = 1024 octets. La valeur par défaut est 512M.
-
MAX_EXECUTION_TIME
¶ Si définit, cette option surchargera le temps maximum d’exécution en secondes pour
$cfg['ExecTimeLimit']
de phpMyAdmin et max_execution_time de PHP.Note
Format : [0-9+]. La valeur par défaut est 600.
-
PMA_CONFIG_BASE64
¶ Si elle est activée, cette option remplacera le fichier par défaut config.inc.php avec le contenu décodé en base64 de la variable.
-
PMA_USER_CONFIG_BASE64
¶ Si elle est définie, cette option remplacera le paramètre par défaut config.user.inc.php par le contenu décodé en base64 de la variable.
-
PMA_UPLOADDIR
¶ Si elle est définie, cette option définira le chemin où les fichiers peuvent être enregistrés pour être disponibles à l’importation (
$cfg['UploadDir']
)
-
PMA_SAVEDIR
¶ Si elle est définie, cette option définira le chemin où les fichiers exportés peuvent être sauvegardés (
$cfg['SaveDir']
)
-
APACHE_PORT
¶ Si elle est définie, cette option changera le port par défaut d’Apache de 80 au cas où vous voudriez qu’il fonctionne sur un port différent comme un port non privilégié. Définissez-la à n’importe quelle valeur de port (comme APACHE_PORT=8090).
Par défaut, Mode d’authentification par « cookie » est utilisé, mais si PMA_USER
et PMA_PASSWORD
sont définis, Mode d’authentification par configuration est utilisé.
Note
Les identifiants nécessaires pour se connecter sont stockés dans le serveur MySQL, dans le cas d’utilisation d’une image Docker. Il existe divers moyens pour les définir (par exemple, MYSQL_ROOT_PASSWORD
en démarrant le conteneur MySQL). Veuillez consulter la documentation pour conteneur MariaDB ou conteneur MySQL.
Personnalisation de la configuration¶
Une configuration additionnelle peut être effectuée dans /etc/phpmyadmin/config.user.inc.php
. Si ce fichier existe, il sera chargé après la configuration générée à partir des variables d’environnement ci-dessus, vous pouvez donc écraser toute variable de configuration. Cette configuration peut être ajoutée en tant que volume en invoquant Docker en utilisant les paramètres -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php.
Noter que le fichier de configuration fourni est appliqué après Variables d’environnement Docker, mais que n’importe quelle valeur peut être écrasée.
Par ex. pour modifier le comportement par défaut de l’exportation en CSV, il est possible d’utiliser le fichier de configuration suivant :
<?php
$cfg['Export']['csv_columns'] = true;
Il est aussi possible de l’utiliser pour définir la configuration du serveur au lieu d’utiliser les variables d’environnement listées dans Variables d’environnement Docker :
<?php
/* Override Servers array */
$cfg['Servers'] = [
1 => [
'auth_type' => 'cookie',
'host' => 'mydb1',
'port' => 3306,
'verbose' => 'Verbose name 1',
],
2 => [
'auth_type' => 'cookie',
'host' => 'mydb2',
'port' => 3306,
'verbose' => 'Verbose name 2',
],
];
Voir aussi
Voir Configuration pour une description détaillée des options de configuration.
Volumes Docker¶
Vous pouvez utiliser les volumes suivants pour personnaliser le comportement de l’image :
/etc/phpmyadmin/config.user.inc.php
Peut être utilisé pour des réglages supplémentaires, voir le chapitre précédent pour plus de détails.
/sessions/
Répertoire où sont stockées les sessions PHP. Vous pouvez partager cela, par exemple, lorsque vous utilisez Mode d’authentification “signon”.
/www/themes/
Le répertoire où phpMyAdmin recherche les thèmes. Par défaut, seuls sont fournis par phpMyAdmin sont livrés, mais vous pouvez en ajouter d’autres (voir Thèmes personnalisés) en utilisant les volumes Docker.
Exemples Docker¶
Pour connecter phpMyAdmin sur un serveur donné, utiliser :
docker run --name phpmyadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin:latest
Pour connecter phpMyAdmin à plusieurs serveurs, utiliser :
docker run --name phpmyadmin -d -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 -p 8080:80 phpmyadmin:latest
Pour utiliser l’option de serveur arbitraire :
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -e PMA_ARBITRARY=1 phpmyadmin:latest
Vous pouvez aussi lier le conteneur de base de données utilisant Docker :
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin:latest
Exécution avec une configuration additionnelle :
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin:latest
Utilisation de thèmes additionnels :
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/custom/phpmyadmin/themeName/:/var/www/html/themes/themeName/ phpmyadmin:latest
Utiliser docker-compose¶
Alternativement, vous pouvez aussi utiliser docker-compose avec docker-compose.yml à partir de <https://github.com/phpmyadmin/docker>. Ceci exécutera phpMyAdmin avec un serveur arbitraire - permettant de spécifier le serveur MySQL/MariaDB server sur la page de connexion.
docker compose up -d
Personnalisation du fichier de configuration à l’aide de docker-compose¶
Il est possible d’utiliser un fichier externe pour personnaliser la configuration de phpMyAdmin et le passer à l’aide d’une directive volumes :
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
environment:
- PMA_ARBITRARY=1
restart: always
ports:
- 8080:80
volumes:
- /sessions
- ~/docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
- /custom/phpmyadmin/theme/:/www/themes/theme/
Voir aussi
En exécution derrière haproxy dans un sous-répertoire¶
Pour exposer phpMyAdmin exécuté dans un conteneur Docker depuis un sous-répertoire, il faut réécrire le chemin de requête du serveur mandatant les requêtes.
Par exemple, en utilisant haproxy, ça peut être réalisé en :
frontend http
bind *:80
option forwardfor
option http-server-close
### NETWORK restriction
acl LOCALNET src 10.0.0.0/8 192.168.0.0/16 172.16.0.0/12
# /phpmyadmin
acl phpmyadmin path_dir /phpmyadmin
use_backend phpmyadmin if phpmyadmin LOCALNET
backend phpmyadmin
mode http
reqirep ^(GET|POST|HEAD)\ /phpmyadmin/(.*) \1\ /\2
# phpMyAdmin container IP
server localhost 172.30.21.21:80
Quand vous utilisez traefik, quelque chose comme ce qui suit devrait fonctionner :
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "(http:\\/\\/[^\\/]+\\/([^\\?\\.]+)[^\\/])$"
replacement = "$1/"
[backends]
[backends.myadmin]
[backends.myadmin.servers.myadmin]
url="http://internal.address.to.pma"
[frontends]
[frontends.myadmin]
backend = "myadmin"
passHostHeader = true
[frontends.myadmin.routes.default]
rule="PathPrefixStrip:/phpmyadmin/;AddPrefix:/"
Puis il faudrait spécifier PMA_ABSOLUTE_URI
dans la configuration docker-compose :
version: '2'
services:
phpmyadmin:
restart: always
image: phpmyadmin:latest
container_name: phpmyadmin
hostname: phpmyadmin
domainname: example.com
ports:
- 8000:80
environment:
- PMA_HOSTS=172.26.36.7,172.26.36.8,172.26.36.9,172.26.36.10
- PMA_VERBOSES=production-db1,production-db2,dev-db1,dev-db2
- PMA_USER=root
- PMA_PASSWORD=
- PMA_ABSOLUTE_URI=http://example.com/phpmyadmin/
IBM Cloud¶
Un de nos utilisateurs a créé un guide pratique pour l’installation de phpMyAdmin sur la plate-forme IBM Cloud.
Installation rapide¶
- Choose an appropriate distribution kit from the phpmyadmin.net
Downloads page. Some kits contain only the English messages, others
contain all languages. We’ll assume you chose a kit whose name
looks like
phpMyAdmin-x.x.x-all-languages.tar.gz
. - Assurez-vous d’avoir téléchargé une archive authentique, voir Vérification d’intégrité de phpMyAdmin.
- « Détarrez » (.tar) ou « dézippez » (.zip) la distribution (assurez-vous de conserver l’arborescence des sous-répertoires) :
tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz
à la racine de votre serveur web. Si vous n’avez pas d’accès directement à la racine du serveur, mettez les fichiers dans un répertoire de votre ordinateur local, et, après l’étape 4, transférez le répertoire sur votre serveur web en utilisant, par exemple, le protocole FTP. - Assurez-vous que tous les scripts aient le propriétaire adéquat (si PHP fonctionne en mode sécurisé, avoir des scripts avec un propriétaire différent de celui des autres posera un problème). Voir la section 4.2 Quel est le meilleur moyen de sécuriser phpMyAdmin contre les attaques malicieuses ? et 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. pour des suggestions.
- Vous devez maintenant configurer votre installation. Deux méthodes peuvent être utilisées. Traditionnellement, les utilisateurs ont une copie modifiée manuellement du fichier
config.inc.php
, mais un script d’installation de type assistant d’installation est maintenant fourni pour ceux qui préfèrent une installation graphique. Créer un fichierconfig.inc.php
demeure néanmoins un moyen rapide pour démarrer et nécessaire pour certaines fonctionnalités avancées.
Création manuelle du fichier¶
Pour créer manuellement le fichier, utiliser un éditeur de texte pour créer le fichier config.inc.php
(il est possible de copier le fichier config.sample.inc.php
pour obtenir un fichier de configuration minimal) dans le répertoire principal de phpMyAdmin (celui qui contient le fichier index.php
). phpMyAdmin charge tout d’abord les valeurs de configuration par défaut puis écrase ces valeurs avec celles trouvées dans le fichier config.inc.php
. Si la valeur par défaut convient pour un paramètre particulier, il n’est pas nécessaire de l’inclure dans le fichier config.inc.php
. Il faudra alors probablement besoin de quelques directives pour continuer. Une configuration simple peut ressembler à ceci :
<?php
// The string is a hexadecimal representation of a 32-bytes long string of random bytes.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
// if you insist on "root" having no password:
// $cfg['Servers'][$i]['AllowNoPassword'] = true;
Ou, si vous préférez ne pas avoir d’invite de connexion à chaque fois :
<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'changeme'; // use here your password
$cfg['Servers'][$i]['auth_type'] = 'config';
Avertissement
Le stockage des mots de passe dans la configuration n’est pas sûr car n’importe qui peut alors manipuler votre base de données.
Pour une explication complète de toutes les valeurs de configuration possibles, veuillez consulter la section Configuration de ce document.
Utilisation du script d’installation¶
Au lieu de modifier manuellement le fichier config.inc.php
, il est possible d’utiliser le script d’installation de phpMyAdmin. Le fichier peut être généré depuis le script d’installation, puis téléchargé pour être transféré vers le serveur.
Ensuite ouvrir le navigateur et aller à l’emplacement où phpMyAdmin est installé, avec le suffixe /setup
. Les modifications ne sont pas enregistrées sur le serveur, il faut utiliser le bouton Télécharger pour les enregistrer localement pour les transférer ensuite vers le serveur.
Maintenant, le fichier est prêt à être utilisé. Vous pouvez choisir de vérifier ou modifier le fichier de configuration avec votre éditeur favori, si vous préférez définir des options avancées que le script d’installation de permet pas de faire.
- Si vous utilisez la méthode d’authentification « config », il est recommandé de protéger le répertoire d’installation de phpMyAdmin parce-qu’avec ce type d’authentification, un utilisateur n’a pas besoin de saisir de mot de passe pour y accéder. Nous recommandons d’utiliser une méthode d’authentification alternative, telle que HTTP-AUTH dans un fichier .htaccess ou de passer sur une authentification de type cookie ou HTTP. Voir la FAI et installation multi-utilisateurs, plus particulièrement 4.4 phpMyAdmin donne toujours « Accès refusé » en utilisant l’authentification HTTP. pour plus d’informations.
- Ouvrez le répertoire principal de phpMyAdmin 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 d’authentification par cookie.
Script de paramétrage sous Debian, Ubuntu et dérivés¶
Debian et Ubuntu ont modifié la façon dont le script de paramétrage est activé ou désactivé, de sorte qu’une seule ligne de commande doit être exécutée pour chacun d’eux.
Pour permettre la modification de la configuration, exécuter :
/usr/sbin/pma-configure
Pour bloquer la modification de la configuration, exécuter :
/usr/sbin/pma-secure
Script d’installation pour openSUSE¶
Certaines versions d’openSUSE ne contiennent pas le script de configuration dans le paquet. Si vous voulez générer la configuration, vous pouvez télécharger le paquet d’origine sur <https://www.phpmyadmin.net/> ou utiliser le script de notre serveur de démonstration : <https://demo.phpmyadmin.net/master/setup/>.
Vérification d’intégrité de phpMyAdmin¶
Depuis juillet 2015, toutes les versions de phpMyAdmin sont signées avec une clé par le développeur qui effectue la publication, qui jusqu’à janvier 2016 était Marc Delisle. Son identifiant de clef est 0xFEFC65D181AF644A, son empreinte de clé PGP est la suivante :
436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A
et vous pouvez obtenir plus d’informations sur l’identification sur <https://keybase.io/lem9>.
À compter de janvier 2016, le gestionnaire de publication est Isaac Bennetch. Son ID de clé est 0xCE752F178259BD92,et son empreinte PGP est :
3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
et vous pouvez obtenir plus d’informations sur l’identification sur <https://keybase.io/ibennetch>.
D’autres téléchargements supplémentaires (comme les thèmes) doivent être signés par Michal Čihař. Sa clé d’identification est 0x9C27B31342B7511D, et son empreinte PGP est :
63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D
et vous pouvez obtenir plus d’informations sur l’identification sur <https://keybase.io/nijel>.
Vous devriez vérifier que la signature correspond à l’archive que vous avez téléchargée. De cette façon vous pouvez être sûr que vous utilisez le même code qui a été publié. Vous devriez aussi vérifier la date de la signature pour être sûr que vous avez téléchargé la dernière version.
Chaque archive est accompagnée par des fichiers .asc
qui contiennent la signature PGP pour celle-ci. Une fois que vous avez ces deux fichiers dans le même dossier, vous pouvez vérifier la signature :
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Can't check signature: public key not found
Comme vous pouvez le voir gpg se plaint qu’il ne connaît pas la clé publique. À ce stade, vous devriez faire une des étapes suivantes :
- Télécharger le trousseau de clés de notre serveur de téléchargement, puis l’importer avec :
$ gpg --import phpmyadmin.keyring
- Télécharger et importer la clé de l’un des serveurs principaux :
$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 3D06A59ECE730EB71B511C17CE752F178259BD92
gpg: requesting key 8259BD92 from hkp server pgp.mit.edu
gpg: key 8259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Ceci améliorera la situation un peu - à ce stade, vous pouvez vérifier que la signature de la clé donnée est correcte, mais vous ne pouvez toujours pas faire confiance au nom utilisé dans la clé :
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>"
gpg: aka "Isaac Bennetch <isaac@bennetch.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
Le problème ici est que tout le monde pouvait délivrer la clé portant ce nom. Vous devez vous assurer que la clé est actuellement détenue par la personne mentionnée. Le GNU Privacy Handbook couvre ce sujet dans le chapitre Validating other keys on your public keyring. La méthode la plus fiable est de rencontrer le développeur en personne et de procéder à l’échange des empreintes digitales de clé, cependant vous pouvez également compter sur la toile de confiance. De cette façon vous pouvez faire confiance à la clé de manière transitive au moyen des signatures des autres personnes, qui ont rencontré le développeur en personne.
Une fois que la clé est approuvée, l’avertissement ne s’affichera plus :
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>" [full]
Si la signature était invalidée (l’archive a été changée), vous obtiendriez une erreur manifeste indépendamment du fait que la clé est approuvée ou non :
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: BAD signature from "Isaac Bennetch <bennetch@gmail.com>" [unknown]
Stockage de la configuration de phpMyAdmin¶
Modifié dans la version 3.4.0: Avant phpMyAdmin 3.4.0, ceci était appelé Infrastructure de tables liées, mais le nom a été changé en raison de la couverture étendue du stockage.
Si vous voulez bénéficier d’une série de nouveautés (Signets, commentaires, historique SQL, mécanisme de suivi, génération de PDF, Transformations, Relations , etc.), vous devrez créer un ensemble de tables spéciales. Ces tables peuvent se trouver dans votre propre base de données, ou dans une base de données centrale pour une installation multi-utilisateurs (cette base de données serait alors accédée par le controluser, aussi, aucun autre utilisateur ne devrait avoir de droits sur celle-ci).
Zéro configuration¶
In many cases, this database structure can be automatically created and
configured. This is called “Zero Configuration” mode and can be particularly
useful in shared hosting situations. “ZeroConf” mode is on by default, to
disable set $cfg['ZeroConf']
to false.
Les trois scénarios suivants traitent du mode Zéro configuration :
- Lors de l’ouverture d’une base de données dans laquelle les tables de stockage ne sont pas présentes, phpMyAdmin propose de les créer à partir de l’onglet Opérations.
- Lors de l’ouverture d’une base de données dans laquelle les tables existent déjà, le logiciel le détecte automatiquement et commence à les utiliser. C’est la situation la plus courante ; après la création initiale automatique des tables, elles sont utilisées continuellement sans déranger l’utilisateur. Ceci est très utilise sur un hébergement partagé où l’utilisateur ne peut pas éditer le fichier
config.inc.php
et d’habitude, l’utilisateur n’a accès qu’à une seule base de données. - Lorsqu’il y a plusieurs bases de données, si l’utilisateur ouvre d’abord la base contenant les tables de stockage puis change de base de données, phpMyAdmin continue à utiliser les tables de la première base. L’utilisateur n’est pas invité à créer d’autres tables dans la nouvelle base.
Configuration manuelle¶
Veuillez regarder dans votre répertoire ./sql/
, 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 J’exécute MySQL sur une machine Win32. Chaque fois que je crée une nouvelle table, les noms de la table et des colonnes sont convertis en lettres minuscules !).
Si vous aviez déjà cette infrastructure et :
- mis à jour vers MySQL 4.1.2 ou supérieur, veuillez utiliser le fichier
sql/upgrade_tables_mysql_4_1_2+.sql
. - mis à jour phpMyAdmin en version 4.3.0 ou supérieur depuis 2.5.0 ou supérieur (<= 4.2.x), veuillez utiliser
sql/upgrade_column_info_4_3_0+.sql
. - mis à jour vers phpMyAdmin 4.7.0 ou plus récent à partir de 4.3.0 ou plus récent, veuillez utiliser
sql/upgrade_tables_4_7_0+.sql
.
puis créer de nouvelles tables en important sql/create_tables.sql
.
Vous pouvez d’ores et déjà utiliser phpMyAdmin qui créera les tables pour vous. Soyez conscient que vous pouvez avoir besoin de privilèges spéciaux (administrateur) pour créer la base de données et les tables, et que le script peut avoir besoin de quelques ajustements en fonction du nom de la base de données.
Après avoir importé le fichier ./sql/create_tables.sql
, il faudra spécifier le nom des tables dans le fichier ./config.inc.php
. Les directives à utiliser pour cela sont dans la section Configuration.
Il vous faudra également un utilisateur de contrôle ($cfg['Servers'][$i]['controluser']
et/ou $cfg['Servers'][$i]['controlpass']
possédant les droits appropriés sur ces tables. Vous pouvez le créer au moyen de l’énoncé suivant :
Et pour toute version de MariaDB :
CREATE USER 'pma'@'localhost' IDENTIFIED VIA mysql_native_password USING 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON `<pma_db>`.* TO 'pma'@'localhost';
Pour MySQL 8.0 et plus récent :
CREATE USER 'pma'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
Pour MySQL plus vieux que 8.0 :
CREATE USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password AS 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
Notez que les installations de MySQL avec PHP plus ancien que 7.4 et MySQL plus récent que 8.0 peuvent nécessiter l’utilisation de l’authentification mysql_native_password comme solution de contournement, voir 1.45 Je reçois un message d’erreur à propos d’une méthode d’authentification inconnue caching_sha2_password lors de la tentative d’identification pour plus de détails.
Mise à jour à partir d’une précédente version¶
Avertissement
Ne jamais extraire une nouvelle version de phpMyAdmin par-dessus une version déjà existante. Toujours supprimer d’abord les anciens fichiers en ne conservant que la configuration.
De cette manière, vous ne laisserez pas de fichiers vieux ou périmés dans le répertoire, ce qui peut avoir de sérieuses implications de sécurité et provoquer divers dysfonctionnements.
Copiez simplement le fichier config.inc.php
de votre installation précédente dans la nouvelle installation. Les fichiers de configuration de très anciennes versions (2.3.0 ou précédentes) peuvent nécessiter des ajustements car certaines options ont été modifiées ou supprimés. Pour une compatibilité avec PHP 5.3 et plus, supprimez une déclaration set_magic_quotes_runtime(0);
que vous pourriez trouver à la fin de votre fichier de configuration.
La mise à jour complète peut être effectuée en quelques étapes simples :
- Télécharger la dernière version de phpMyAdmin sur <https://www.phpmyadmin.net/downloads/>.
- Renommer le répertoire existant de phpMyAdmin (par exemple en
phpmyadmin-old
). - Décompresser le phpMyAdmin fraîchement téléchargé dans l’emplacement désiré (par exemple
phpmyadmin
). - Copier le fichier
config.inc.php`
de l’ancien répertoire (phpmyadmin-old
) vers le nouveau (phpmyadmin
). - Tester que tout fonctionne correctement.
- Supprimer la sauvegarde d’une version précédente (
phpmyadmin-old
).
Si vous avez mis à jour votre serveur MySQL d’une version plus ancienne que la 4.1.2 vers une version 5.x ou supérieure et que vous utilisez la configuration de stockage de phpMyAdmin, vous devez exécuter le script SQL suivant : sql/upgrade_tables_mysql_4_1_2+.sql
.
Si vous avez mis à jour phpMyAdmin en version 4.3.0 ou supérieur à depuis 2.5.0 ou supérieur (<= 4.2.x) et si vous utilisez la configuration de stockage de phpMyAdmin, vous devez exécuter le script SQL qui se trouve dans sql/upgrade_column_info_4_3_0+.sql
.
Ne pas oublier de vider le cache du navigateur et l’ancienne session en se déconnectant puis en se reconnectant.
Utiliser les modes d’authentification¶
Les authentifications HTTP et par cookies sont recommandées dans un environnement multi-utilisateurs où vous souhaitez que chaque utilisateur n’ait accès qu’à sa propre base de données et n’aille pas trifouiller dans les bases de données des voisins. Néanmoins, sachez que MS Internet Explorer semble avoir une gestion peu fiable des cookies, tout du moins jusqu’à sa version 6. Dans un environnement mono-utilisateur, vous pouvez également souhaiter utiliser une authentification HTTP ou par cookies afin d’éviter de stocker votre nom d’utilisateur / mot de passe en clair dans le fichier de configuration.
Les modes d’authentification HTTP et par cookie sont plus sécurisés : les informations de connexion de MySQL n’ont pas besoin d’être définies dans le fichier de configuration de phpMyAdmin (excepté pour $cfg['Servers'][$i]['controluser']
). Cependant, gardez à l’esprit que le mot de passe transite en clair, à moins d’utiliser le protocole HTTPS. Dans le mode cookie, le mot de passe est stocké, chiffré avec l’algorithme AES, dans un cookie temporaire.
Ensuite, un ensemble de privilèges doit être accordé à chaque utilisateur réel sur un ensemble de bases définies. Normalement, vous ne devriez pas donner de privilèges globaux à un utilisateur ordinaire, à moins que vous ne sachiez ce que vous faites (par exemple, si vous créez un super-utilisateur). Par exemple, déléguer à un utilisateur réel tous les privilèges sur la base de données user_base :
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
Tout ce que les utilisateurs pourraient faire est entièrement contrôlé par le système de gestion des utilisateurs de MySQL. Avec les modes d’authentification HTTP ou par cookie, vous n’avez pas besoin de renseigner les champs utilisateur/mot de passe dans $cfg['Servers']
.
Voir aussi
1.35 Puis-je utiliser l’authentification HTTP avec Apache CGI ?, 1.35 Puis-je utiliser l’authentification HTTP avec Apache CGI ?, 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 ?, 4.2 Quel est le meilleur moyen de sécuriser phpMyAdmin contre les attaques malicieuses ?, 4.3 J’obtiens des erreurs sur l’impossibilité d’inclure un fichier dans /lang ou dans /libraries.
Mode d’authentification HTTP¶
Il utilise la méthode d’authentification HTTP basique et vous autorise à vous connecter en tant que n’importe quel utilisateur MySQL valide.
Il est géré par la plupart des configurations PHP. Pour la gestion IIS (ISAPI) utilisant PHP CGI, voir 1.35 Puis-je utiliser l’authentification HTTP avec Apache CGI ? ; pour utiliser Apache CGI voir 1.35 Puis-je utiliser l’authentification HTTP avec Apache CGI ?.
Quand PHP est exécuté avec Apache mod_proxy_fcgi (par exemple avec PHP-FPM), les en-têtes
Authorization
ne sont pas passés à l’application sous-jacente FCGI, et les identifiants n’atteindront pas l’application. Dans ce cas, vous pouvez ajouter l directive de configuration :SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Voir également la section 4.4 phpMyAdmin donne toujours « Accès refusé » en utilisant l’authentification HTTP. sur le fait de ne pas utiliser le mécanisme d’authentification .htaccess en même temps que le mode d’authentification “HTTP”.
Note
Il n’existe pas de manière de se déconnecter proprement en utilisant l’authentification HTTP : la plupart des navigateurs retiennent les identifiants jusqu’à ce qu’une nouvelle authentification réussisse avec d’autres identifiants. À cause de cela, cette méthode possède une limitation qui ne vous permet pas de vous connecter avec le même utilisateur après la déconnexion.
Mode d’authentification par « cookie »¶
- Le nom d’utilisateur et le mot de passe sont stockés dans des cookies pendant la session et le mot de passe est effacé quand celle-ci se termine.
- Avec ce mode, l’utilisateur peut réellement se déconnecter de phpMyAdmin et se reconnecter avec le même nom d’utilisateur (ce n’est pas possible avec Mode d’authentification HTTP).
- Si vous voulez autoriser des utilisateurs à saisir un nom d’hôte pour se connecter (au lieu des seuls serveurs configurés dans
config.inc.php
), consultez la directive$cfg['AllowArbitraryServer']
. - Comme il est indiqué dans la section Prérequis, l’extension
openssl
accélère considérablement l’accès, mais elle n’est pas obligatoire.
Mode d’authentification “signon”¶
- Ce mode est un moyen pratique pour utiliser les informations d’identification provenant d’une autre application pour s’authentifier dans phpMyAdmin en utilisant une authentification unique.
- L’autre application a besoin de stocker les informations de connexion dans les données de session (consulter
$cfg['Servers'][$i]['SignonSession']
et$cfg['Servers'][$i]['SignonCookieParams']
) ou vous devez mettre en œuvre un script pour renvoyer les crédentiels (consulter$cfg['Servers'][$i]['SignonScript']
). - Quand aucun identifiant de connexion n’est disponible, l’utilisateur est redirigé vers
$cfg['Servers'][$i]['SignonURL']
, où vous pouvez traiter le processus de connexion.
Un exemple très basique pour stocker les identifiants de connexion est disponible : examples/signon.php
:
<?php
/**
* Single signon for phpMyAdmin
*
* This is just example how to use session based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*/
declare(strict_types=1);
/* Use cookies for session */
ini_set('session.use_cookies', 'true');
/* Change this to true if using phpMyAdmin over https */
$secureCookie = false;
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secureCookie, true);
/* Create signon session */
$sessionName = 'SignonSession';
session_name($sessionName);
// Uncomment and change the following line to match your $cfg['SessionSavePath']
//session_save_path('/foobar');
@session_start();
/* Was data posted? */
if (isset($_POST['user'])) {
/* Store there credentials */
$_SESSION['PMA_single_signon_user'] = $_POST['user'];
$_SESSION['PMA_single_signon_password'] = $_POST['password'];
$_SESSION['PMA_single_signon_host'] = $_POST['host'];
$_SESSION['PMA_single_signon_port'] = $_POST['port'];
/* Update another field of server configuration */
$_SESSION['PMA_single_signon_cfgupdate'] = ['verbose' => 'Signon test'];
$_SESSION['PMA_single_signon_HMAC_secret'] = hash('sha1', uniqid(strval(random_int(0, mt_getrandmax())), true));
$id = session_id();
/* Close that session */
@session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
} else {
/* Show simple form */
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<title>phpMyAdmin single signon example</title>
</head>
<body>';
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">';
echo $_SESSION['PMA_single_signon_error_message'];
echo '</p>';
}
echo '<form action="signon.php" method="post">
Username: <input type="text" name="user" autocomplete="username" spellcheck="false"><br>
Password: <input type="password" name="password" autocomplete="current-password" spellcheck="false"><br>
Host: (will use the one from config.inc.php by default)
<input type="text" name="host"><br>
Port: (will use the one from config.inc.php by default)
<input type="text" name="port"><br>
<input type="submit">
</form>
</body>
</html>';
}
Sinon, vous pouvez aussi utiliser cette solution en utilisant OpenID : examples/openid.php
:
<?php
/**
* Single signon for phpMyAdmin using OpenID
*
* This is just example how to use single signon with phpMyAdmin, it is
* not intended to be perfect code and look, only shows how you can
* integrate this functionality in your application.
*
* It uses OpenID pear package, see https://pear.php.net/package/OpenID
*
* User first authenticates using OpenID and based on content of $AUTH_MAP
* the login information is passed to phpMyAdmin in session data.
*/
declare(strict_types=1);
if (false === @include_once 'OpenID/RelyingParty.php') {
exit;
}
/* Change this to true if using phpMyAdmin over https */
$secureCookie = false;
/**
* Map of authenticated users to MySQL user/password pairs.
*/
$authMap = ['https://launchpad.net/~username' => ['user' => 'root', 'password' => '']];
// phpcs:disable PSR1.Files.SideEffects,Squiz.Functions.GlobalFunction
/**
* Simple function to show HTML page with given content.
*
* @param string $contents Content to include in page
*/
function Show_page(string $contents): void
{
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<title>phpMyAdmin OpenID signon example</title>
</head>
<body>';
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">' . $_SESSION['PMA_single_signon_message'] . '</p>';
unset($_SESSION['PMA_single_signon_message']);
}
echo $contents;
echo '</body></html>';
}
/**
* Display error and exit
*
* @param Exception $e Exception object
*/
function Die_error(Throwable $e): void
{
$contents = "<div class='relyingparty_results'>\n";
$contents .= '<pre>' . htmlspecialchars($e->getMessage()) . "</pre>\n";
$contents .= "</div class='relyingparty_results'>";
Show_page($contents);
exit;
}
// phpcs:enable
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secureCookie, true);
/* Create signon session */
$sessionName = 'SignonSession';
session_name($sessionName);
@session_start();
// Determine realm and return_to
$base = 'http';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
$base .= 's';
}
$base .= '://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'];
$realm = $base . '/';
$returnTo = $base . dirname($_SERVER['PHP_SELF']);
if ($returnTo[strlen($returnTo) - 1] !== '/') {
$returnTo .= '/';
}
$returnTo .= 'openid.php';
/* Display form */
if ((! count($_GET) && ! count($_POST)) || isset($_GET['phpMyAdmin'])) {
/* Show simple form */
$content = '<form action="openid.php" method="post">
OpenID: <input type="text" name="identifier"><br>
<input type="submit" name="start">
</form>';
Show_page($content);
exit;
}
/* Grab identifier */
$identifier = null;
if (isset($_POST['identifier']) && is_string($_POST['identifier'])) {
$identifier = $_POST['identifier'];
} elseif (isset($_SESSION['identifier']) && is_string($_SESSION['identifier'])) {
$identifier = $_SESSION['identifier'];
}
/* Create OpenID object */
try {
$o = new OpenID_RelyingParty($returnTo, $realm, $identifier);
} catch (Throwable $e) {
Die_error($e);
}
/* Redirect to OpenID provider */
if (isset($_POST['start'])) {
try {
$authRequest = $o->prepare();
} catch (Throwable $e) {
Die_error($e);
}
$url = $authRequest->getAuthorizeURL();
header('Location: ' . $url);
exit;
}
/* Grab query string */
if (! count($_POST)) {
[, $queryString] = explode('?', $_SERVER['REQUEST_URI']);
} else {
// Fetch the raw query body
$queryString = file_get_contents('php://input');
}
/* Check reply */
try {
$message = new OpenID_Message($queryString, OpenID_Message::FORMAT_HTTP);
} catch (Throwable $e) {
Die_error($e);
}
$id = $message->get('openid.claimed_id');
if (empty($id) || ! isset($authMap[$id])) {
Show_page('<p>User not allowed!</p>');
exit;
}
$_SESSION['PMA_single_signon_user'] = $authMap[$id]['user'];
$_SESSION['PMA_single_signon_password'] = $authMap[$id]['password'];
$_SESSION['PMA_single_signon_HMAC_secret'] = hash('sha1', uniqid(strval(random_int(0, mt_getrandmax())), true));
session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
Si vous voulez transmettre les identifiants de connexion en utilisant d’autres moyens, vous devrez mettre en œuvre une classe enveloppante (wrapper) en PHP pour obtenir les données et les définir dans $cfg['Servers'][$i]['SignonScript']
. Voici un script minimaliste pour cela : examples/signon-script.php
:
<?php
/**
* Single signon for phpMyAdmin
*
* This is just example how to use script based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*/
declare(strict_types=1);
// phpcs:disable Squiz.Functions.GlobalFunction
/**
* This function returns username and password.
*
* It can optionally use configured username as parameter.
*
* @param string $user User name
*
* @return array<int,string>
*/
function get_login_credentials(string $user): array
{
/* Optionally we can use passed username */
if (! empty($user)) {
return [$user, 'password'];
}
/* Here we would retrieve the credentials */
return ['root', ''];
}
Mode d’authentification par configuration¶
- Ce mode est parfois le moins sécurisé car il requiert de remplir les champs
$cfg['Servers'][$i]['user']
et$cfg['Servers'][$i]['password']
(par conséquent, quiconque peut lire votre fichierconfig.inc.php
peut découvrir votre nom d’utilisateur et votre mot de passe). - Dans la section FAI et installation multi-utilisateurs il y a un point expliquant comment protéger votre fichier de configuration.
- Pour une sécurité supplémentaire dans ce mode, vous devriez considérer les directives de configuration de l’authentification hôte
$cfg['Servers'][$i]['AllowDeny']['order']
et$cfg['Servers'][$i]['AllowDeny']['rules']
. - Contrairement aux modes par cookie et HTTP, l’utilisateur n’a pas besoin de s’authentifier lors du premier chargement du site phpMyAdmin. C’est prévu ainsi, mais cela pourrait permettre à tout utilisateur d’accéder à votre installation. L’utilisation d’une méthode de restriction est recommandée, que ce soit en utilisant un fichier .htaccess avec la directive HTTP-AUTH ou en interdisant les requêtes HTTP entrantes sur le routeur ou le pare-feu (ces deux suggestions n’entrent pas dans les sujets abordés dans ce manuel mais vous pouvez facilement trouver des informations sur ces sujets avec Google).
Sécuriser votre installation de phpMyAdmin¶
L’équipe de phpMyAdmin essaye tant bien que mal de rendre l’application sûre, cependant, il est toujours possible de la rendre encore plus sûre :
Suivez nos annonces de sécurité et mettez à jour phpMyAdmin chaque fois qu’une vulnérabilité est révélée.
Utiliser phpMyAdmin en HTTPS seulement. De préférence, utiliser HSTS, pour être protégé des attaques de type « protocol downgrade ».
Assure-vous que votre configuration PHP suive les recommandations pour les sites de production, par exemple display_errors doit être désactivé.
Supprimez le dossier
test
de phpMyAdmin, à moins que vous ne développiez et ayez besoin d’une suite de test.Supprimez le dossier
setup
de phpMyAdmin, vous ne l’utiliserez probablement plus après l’installation initiale.Choisit la méthode d’authentification appropriée - Mode d’authentification par « cookie » est probablement le meilleur choix dans le cas d’un hébergement mutualisé.
Refuse l’accès aux fichiers auxiliaires des sous-dossiers
./libraries
et./templates/
de la configuration du serveur Web. Une telle configuration empêche de possibles vulnérabilités à l’exposition de chemins et de scripts inter-sites qui pourraient être découvertes dans le code. Pour le serveur Web Apache, la façon habituelle de procéder est d’utiliser un fichier .htaccess dans ces dossiers.Refuse l’accès aux fichiers temporaires, voir
$cfg['TempDir']
(si cela est placé à l’intérieur de votre racine web, voir aussi Les répertoires de transfert/sauvegarde/import du serveur web) .Il est généralement conseillé de protéger l’installation phpMyAdmin publique contre les accès des robots car ils ne peuvent rien faire de bon en général ici. Vous pouvez faire ceci en utilisant le fichier
robots.txt
à la racine de votre serveur Web ou en limitant l’accès par la configuration de votre serveur Web, voir 1.42 Comment empêcher les robots d’accéder à phpMyAdmin ?.Si vous ne voulez pas que tous les utilisateurs MySQL puissent accéder à phpMyAdmin, vous pouvez utiliser
$cfg['Servers'][$i]['AllowDeny']['rules']
pour les limiter ou$cfg['Servers'][$i]['AllowRoot']
pour refuser l’accès utilisateur root.Active Authentification à deux facteurs pour votre compte.
Envisagez de masquer phpMyAdmin derrière une authentification de serveur mandataire, de sorte que les utilisateurs aient à s’identifier avant de fournir les identifiants MySQL. Pour cela, vous pouvez configurer votre serveur Web pour qu’il nécessite une authentification HTTP. Par exemple, pour Apache, cela peut être réalisé avec :
AuthType Basic AuthName "Restricted Access" AuthUserFile /usr/share/phpmyadmin/passwd Require valid-user
Après avoir changé la configuration, il faut créer une liste des utilisateurs qui peuvent s’authentifier. Cela peut être fait en utilisant l’utilitaire htpasswd :
htpasswd -c /usr/share/phpmyadmin/passwd username
Si vous craignez les attaques automatisées, l’activation de Captcha au moyen de
$cfg['CaptchaLoginPublicKey']
et$cfg['CaptchaLoginPrivateKey']
pourrait être envisageable.Les tentatives de connexion qui ont échouées sont inscrites au journal syslog (si disponible, voir
$cfg['AuthLog']
). Cela peut servir à un outil comme fail2ban pour bloquer les attaques par force brute. Noter que le fichier de journalisation utilisé par syslog n’est pas le même que celui des erreurs Apache ou celui journalisant les accès.Au cas où phpMyAdmin est exécuté en même temps que d’autres applications PHP, il est généralement conseillé d’utiliser un emplacement de session séparé pour phpMyAdmin afin d’éviter des attaques possibles basées sur la session. Pour cela il est possible d’utiliser
$cfg['SessionSavePath']
.
Utilisation de SSL pour la connexion au serveur de base de données¶
Il est recommandé d’utiliser SSL lors de la connexion au serveur de bases de données distant. Il existe plusieurs options de configuration SSL :
$cfg['Servers'][$i]['ssl']
- Définit si SSL est utilisé ou pas. En cas d’activation seule, la connexion sera chiffrée mais pas authentifiée ; il sera impossible de vérifier que la communication se fait avec le bon serveur.
$cfg['Servers'][$i]['ssl_key']
et$cfg['Servers'][$i]['ssl_cert']
- Ceci est utilisé pour l’authentification du client au serveur.
$cfg['Servers'][$i]['ssl_ca']
et$cfg['Servers'][$i]['ssl_ca_path']
- Les autorités de certification de confiance pour les certificats de serveur. Cela est utilisé pour s’assurer que la communication est faite un serveur de confiance.
$cfg['Servers'][$i]['ssl_verify']
- Cette configuration désactive la vérification du certificat de serveur. À utiliser avec prudence.
Lorsque le serveur de base de données utilise une connexion locale ou un réseau privé et que SSL ne peut pas être configuré, vous pouvez utiliser $cfg['MysqlSslWarningSafeHosts']
pour lister explicitement les noms d’hôtes qui sont considérés comme sûrs.
Problèmes connus¶
Les utilisateurs avec des privilèges spécifiques à des colonnes ne peuvent pas utiliser « Parcourir »¶
Si un utilisateur a des privilèges spécifiques à des colonnes sur certaines (mais pas toutes) colonnes dans une table, « Parcourir » échouera avec un message d’erreur.
Comme moyen de contournement, une requête enregistrée du même nom que la table peut être créée. Elle sera utilisée à la place du lien « Parcourir ». Problème 11922.
Problème de reconnexion après s’être déconnecté en utilisant l’authentification “http”¶
En utilisant auth_type
“http”, il peut être impossible de se reconnecter (lorsque la déconnexion est faite manuellement ou après une période d’inactivité). Problème 11898.
Configuration¶
All configurable data is placed in config.inc.php
in phpMyAdmin’s
toplevel directory. If this file does not exist, please refer to the
Installation section to create one. This file only needs to contain the
parameters you want to change from their corresponding default value.
Voir aussi
Exemple pour des exemples de configurations
Si une directive manque dans votre fichier, vous pouvez ajouter une nouvelle ligne avec ce fichier. Ce fichier sert à remplacer les valeurs par défaut ; si vous souhaitez utiliser les valeurs par défaut, il n’est pas nécessaire d’ajouter de ligne ici.
Les paramètres relatifs à la conception (comme les couleurs), se trouvent dans themes/themename/layout.inc.phpscss/_variables.scss
. Vous pouvez également créer les fichiers config.footer.inc.php
et config.header.inc.php
pour ajouter à votre site du code spécifique en-tête et en pied de chaque page.
Note
Certaines distributions, comme par exemple Debian et Ubuntu, placent le fichier config.inc.php
dans /etc/phpmyadmin
et non pas avec le reste des sources de phpMyAdmin.
Configuration de base¶
-
$cfg['PmaAbsoluteUri']
¶ Type: chaîne Valeur par défaut: ''
Modifié dans la version 4.6.5: Ce paramètre n’était plus disponible dans phpMyAdmin 4.6.0 - 4.6.4.
Définissez ici l”URL complète (avec le chemin d’accès complet) du répertoire d’installation de votre phpMyAdmin. C’est-à-dire
https://www.exemple.net/chemin_vers_votre_repertoire_phpMyAdmin/
. Veuillez noter également que l”URL de la plupart des serveurs Web est sensible à la casse (même sous Windows). N’oubliez pas la barre oblique (« / ») finale pour votre URL.À partir de la version 2.3.0, il est conseillé d’essayer de laisser ce paramètre à blanc. Dans la plupart des cas, phpMyAdmin détecte automatiquement le paramètre approprié. Les utilisateurs de « port forwarding » ou de configuration de reverse-proxy complexes pourraient avoir besoin de modifier ceci.
Un bon test est de parcourir une table, d’éditer une ligne et de l’enregistrer. Vous devriez obtenir un message d’erreur si phpMyAdmin rencontre des problèmes pour détecter automatiquement la bonne valeur. Si vous obtenez une erreur indiquant que ce paramètre doit être défini ou que le code d’auto-détection échoue à trouver votre chemin d’accès, veuillez poster un rapport de bogue sur notre outils de suivi de bogues pour que nous améliorions le code.
Voir aussi
1.40 Quand j’accède à phpMyAdmin via un serveur mandataire inversé Apache, le cookie de connexion ne fonctionne pas., 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 ?, 4.7 La fenêtre d’authentification est affichée plus d’une fois, pourquoi ?, 5.16 Avec Internet Explorer, j’obtiens des erreurs JavaScript « Accès refusé ». Ou je n’arrive pas à faire fonctionner phpMyAdmin sous Windows.
-
$cfg['PmaNoRelation_DisableWarning']
¶ Type: booléen Valeur par défaut: false À 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 avez essayé 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['AuthLog']
¶ Type: chaîne Valeur par défaut: 'auto'
Nouveau dans la version 4.8.0: Ceci est géré depuis phpMyAdmin 4.8.0.
Configuration de l’emplacement des journaux d’authentification. Les tentatives d’authentification ayant échoué (ou toutes les tentatives en fonction de
$cfg['AuthLogSuccess']
) seront enregistrées selon cette directive :auto
- Laisser phpMyAdmin choisir automatiquement entre
syslog
etphp
. syslog
- La journalisation utilisant syslog avec la fonctionnalité AUTH se trouve dans
/var/log/auth.log
sur la plupart des systèmes. php
- Journalisation dans le fichier d’erreur de PHP.
sapi
- Journalisation dans le fichier journal de PHP SAPI.
/chemin/du/fichier
- Toute autre valeur est considérée comme un nom de fichier et les entrées de journal sont écrites ici.
Note
Pour la journalisation vers un fichier, s’assurer que ses permissions soient correctement définies pour un utilisateur du serveur Web ; la configuration devrait suivre précisément les instructions décrites dans
$cfg['TempDir']
:
-
$cfg['AuthLogSuccess']
¶ Type: booléen Valeur par défaut: false Nouveau dans la version 4.8.0: Ceci est géré depuis phpMyAdmin 4.8.0.
Pour indiquer de consigner les tentatives d’authentification réussies dans
$cfg['AuthLog']
.
-
$cfg['SuhosinDisableWarning']
¶ Type: booléen Valeur par défaut: false Un avertissement est affiché sur la page principale si Suhosin est détecté.
Vous pouvez passer cette variable à
true
pour empêcher ce message d’apparaître.
-
$cfg['LoginCookieValidityDisableWarning']
¶ Type: booléen Valeur par défaut: false Un avertissement est affiché sur la page principale si le paramètre PHP session.gc_maxlifetime est inférieur à la durée de validité du cookie configuré dans phpMyAdmin.
Vous pouvez passer cette variable à
true
pour empêcher ce message d’apparaître.
-
$cfg['ServerLibraryDifference_DisableWarning']
¶ Type: booléen Valeur par défaut: false Obsolète depuis la version 4.7.0: Ce réglage a été retiré car l’avertissement a aussi été retiré.
Un avertissement est affiché sur la page principale s’il y a une différence entre la bibliothèque MySQL et la version du serveur.
Vous pouvez passer cette variable à
true
pour empêcher ce message d’apparaître.
-
$cfg['ReservedWordDisableWarning']
¶ Type: booléen Valeur par défaut: false Cet avertissement est affiché sur la page Structure d’une table si un ou plusieurs noms de colonnes correspondent à des mots réservés de MySQL.
Si vous voulez désactiver cet avertissement, vous pouvez le définir à
true
et celui-ci ne sera plus affiché.
-
$cfg['TranslationWarningThreshold']
¶ Type: entier Valeur par défaut: 80 Affiche un avertissement sur les traductions incomplètes à partir d’un certain seuil.
-
$cfg['SendErrorReports']
¶ Type: chaîne Valeur par défaut: 'ask'
Les valeurs valides sont :
ask
always
never
Définir le comportement par défaut pour les rapports d’erreur JavaScript.
Quand une erreur est détectée dans l’exécution de JavaScript. Un rapport d’erreur peut être envoyé à l’équipe de phpMyAdmin si l’utilisateur y consent.
Le paramètre par défaut
'ask'
demandera chaque fois à l’utilisateur s’il y a un nouveau rapport d’erreur. Cependant, vous pouvez définir ce paramètre à'always'
pour envoyer un rapport d’erreur sans demander de confirmation ou à'never'
pour ne jamais envoyer de rapports d’erreur.Cette directive est disponible à la fois dans le fichier de configuration et dans les préférences utilisateur. Si la personne responsable d’une installation mutli-utilisateur préfère désactiver cette fonctionnalités pour tous les utilisateurs, la valeur
'never'
doit être définie etla directive$cfg['UserprefsDisallow']
doit contenir'SendErrorReports'
dans un de ses tableaux de valeurs.
-
$cfg['ConsoleEnterExecutes']
¶ Type: booléen Valeur par défaut: false Ce paramétrage réglé sur
true
permet à l’utilisateur d’exécuter des requêtes en appuyant sur Entrée au lieu de Ctrl+Entrée. Une nouvelle ligne peut être insérée en appuyant sur Maj+Entrée.Le comportement de la console peut être temporairement modifié en utilisant l’interface des paramètres de la console.
-
$cfg['AllowThirdPartyFraming']
¶ Type: booléen|chaîne Valeur par défaut: false Définir ceci à
true
permet à phpMyAdmin d’être inclus à l’intérieur d’un cadre, et cela représente un potentiel trou de sécurité pour les attaques de script inter-cadre (cross-frame) ou par clickjacking. Définir ceci à “sameorigin” empêche phpMyAdmin d’être inclus depuis une autre document dans un cadre, sauf si ce document appartient au même domaine.
Paramètres de connexion au serveur¶
-
$cfg['Servers']
¶ Type: array Valeur par défaut: un tableau de serveur avec les paramètres listés ci-dessous Since version 1.4.2, phpMyAdmin supports the administration of multiple MySQL servers. Therefore, a
$cfg['Servers']
-array has been added which contains the login information for the different servers. The first$cfg['Servers'][$i]['host']
contains the hostname of the first server, the second$cfg['Servers'][$i]['host']
the hostname of the second server, etc. You can put as many sections for server definition as you need inconfig.inc.php
, copy that block or needed parts (you don’t have to define all settings, just those you need to change).Note
Le tableau
$cfg['Servers']
commence par $cfg[“Servers”][1]. N’utilisez pas $cfg[“Servers”][0]. Si vous voulez plus d’un serveur, copiez simplement la section suivante (incluant l’incrément $i) plusieurs fois. Il n’est pas utilise de renseigner tous les paramètres, ne renseignez que ceux que vous avez besoin de changer.
-
$cfg['Servers'][$i]['host']
¶ Type: chaîne Valeur par défaut: 'localhost'
Le nom d’hôte ou l’adresse IP du $i-ème serveur MySQL. Par ex.
localhost
.Les valeurs autorisées sont :
- nom d’hôte, par exemple,
'localhost'
ou encore'mabdd.exemple.org'
- adresse IP, par exemple,
'127.0.0.1'
ou encore'192.168.10.1'
- adresse IPv6, par exemple,
2001:cdba:0000:0000:0000:0000:3257:9652
- point -
'.'
, c’est-à-dire, utiliser les canaux nommés sur les systèmes Windows - vide -
''
, désactive ce serveur
Note
Le nom d’hôte
localhost
est spécialement pris en charge par MySQL qui utilise un protocole de connexion basé sur socket. Pour exploiter un adressage TCP/IP, utiliser une adresse IP ou un nom d’hôte comme127.0.0.1
oudb.example.com
. Il est possible de configurer le chemin vers le socket avec$cfg['Servers'][$i]['socket']
.- nom d’hôte, par exemple,
-
$cfg['Servers'][$i]['port']
¶ Type: chaîne Valeur par défaut: ''
Le numéro de port du $i-ème serveur MySQL. Ce numéro est 3306 par défaut (laisser vide pour utiliser la valeur par défaut).
Note
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, utilisez127.0.0.1
ou le nom d’hôte réel dans$cfg['Servers'][$i]['host']
.
-
$cfg['Servers'][$i]['socket']
¶ Type: chaîne Valeur par défaut: ''
Le chemin vers le socket à utiliser. Laisser à vide pour utiliser le chemin par défaut. Pour déterminer le bon socket, vérifiez votre configuration MySQL ou, en utilisant la ligne de commande mysql, utilisez la commande
status
. Parmi les informations affichées se trouvera le socket utilisé.Note
Prend effet seulement si
$cfg['Servers'][$i]['host']
est défini àlocalhost
.
-
$cfg['Servers'][$i]['ssl']
¶ Type: booléen Valeur par défaut: false Pour activer ou pas une connexion SSL entre phpMyAdmin et le serveur MySQL pour sécuriser la connexion.
En utilisant l’extension
'mysql'
, aucune des options de configuration'ssl…'
restantes ne s’applique.Nous vous recommandons vivement d’utiliser l’extension
'mysqli'
pour l’utilisation de cette option.Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_key']
¶ Type: chaîne Valeur par défaut: NULL Chemin d’accès vers le fichier de certificat (key) client lors de l’utilisation de SSL pour la connexion au serveur MySQL. Ceci est utilisé pour authentifier le client au serveur.
Par exemple :
$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_cert']
¶ Type: chaîne Valeur par défaut: NULL Chemin d’accès vers le fichier de certificat client lors de l’utilisation de SSL pour la connexion au serveur MySQL. Ceci est utilisé pour authentifier le client au serveur.
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ca']
¶ Type: chaîne Valeur par défaut: NULL Chemin d’accès vers le fichier de certificat (CA) lors de l’utilisation de SSL pour la connexion au serveur MySQL.
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ca_path']
¶ Type: chaîne Valeur par défaut: NULL Répertoire contenant les certificats SSL CA (autorité de certification) approuvés au format PEM.
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ciphers']
¶ Type: chaîne Valeur par défaut: NULL Liste des chiffrements SSL disponibles pour les connexions au serveur MySQL.
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_verify']
¶ Type: booléen Valeur par défaut: true Nouveau dans la version 4.6.0: Ceci est géré depuis phpMyAdmin 4.6.0.
Si votre installation PHP utilise le pilote natif de MySQL (mysqlnd), que votre serveur MySQL est en version 5.6 ou supérieure et que votre certificat SSL est auto-signé, il y a des chances que votre connexion SSL échoue en raison de la validation. Définir ceci à
false
désactivera la vérification de validation.Depuis PHP 5.6.0, il vérifie aussi si le nom du serveur correspond au CN de son certificat. Il n’existe actuellement aucun moyen de désactiver uniquement cette vérification sauf à désactiver totalement la vérification SSL.
Avertissement
Désactiver la vérification du certificat SSL Rend inutile l’utilisation de SSL. Ceci rendra la connexion vulnérable à des attaque de type « man in the middle ».
Note
Cette étiquette ne fonctionne qu’avec PHP 5.6.16 ou supérieur.
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données, Google Cloud SQL avec SSL, Amazon RDS Aurora avec SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['connect_type']
¶ Type: chaîne Valeur par défaut: 'tcp'
Obsolète depuis la version 4.7.0: Ce réglage n’est plus utilisé à aprtir de la version 4.7.0, depuis que MySQL a décidé du type de connexion basé sur l’hôte. Merci de définir à la place et en conséquence
$cfg['Servers'][$i]['host']
.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.
-
$cfg['Servers'][$i]['compress']
¶ Type: booléen Valeur par défaut: false Pour utiliser ou non un protocole compressé pour la connexion au serveur MySQL (expérimental).
-
$cfg['Servers'][$i]['controlhost']
¶ Type: chaîne Valeur par défaut: ''
Permet d’utiliser un hôte alternatif pour la configuration des données de stockage.
Voir aussi
-
$cfg['Servers'][$i]['controlport']
¶ Type: chaîne Valeur par défaut: ''
Permet d’utiliser un port alternatif pour accéder à l’hôte contenant la configuration du stockage.
Voir aussi
-
$cfg['Servers'][$i]['controluser']
¶ Type: chaîne Valeur par défaut: ''
-
$cfg['Servers'][$i]['controlpass']
¶ Type: chaîne Valeur par défaut: ''
Ce compte spécial est utilisé pour accéder aux Stockage de la configuration de phpMyAdmin. Vous n’en avez pas besoin dans le cas d’un utilisateur unique, mais si phpMyAdmin est partagé, il est recommandé de donner accès aux Stockage de la configuration de phpMyAdmin seulement à cet utilisateur et de configurer phpMyAdmin pour l’utiliser. Tous les utilisateurs seront alors capables d’utiliser les fonctionnalités sans avoir d’accès direct aux Stockage de la configuration de phpMyAdmin.
Modifié dans la version 2.2.5: ceux-ci étaient appelés
stduser
etstdpass
-
$cfg['Servers'][$i]['control_*']
¶ Type: mixte Nouveau dans la version 4.7.0.
Vous pouvez modifier tout paramètre de connexion MySQL pour le lien de contrôle (utilisé pour accéder aux Stockage de la configuration de phpMyAdmin) en utilisant la configuration préfixée avec
control_
.Ceci peut être utilisé pour modifier tout aspect du contrôle de connexion, qui utilise par défaut les mêmes paramètres que ceux de l’utilisateur.
Par exemple, vous pouvez configurer SSL pour le contrôle de connexion :
// Enable SSL $cfg['Servers'][$i]['control_ssl'] = true; // Client secret key $cfg['Servers'][$i]['control_ssl_key'] = '../client-key.pem'; // Client certificate $cfg['Servers'][$i]['control_ssl_cert'] = '../client-cert.pem'; // Server certification authority $cfg['Servers'][$i]['control_ssl_ca'] = '../server-ca.pem';
Voir aussi
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
,$cfg['Servers'][$i]['socket']
,$cfg['Servers'][$i]['compress']
,$cfg['Servers'][$i]['hide_connection_errors']
-
$cfg['Servers'][$i]['auth_type']
¶ Type: chaîne Valeur par défaut: 'cookie'
Définit le mode d’authentification config, cookie, signon ou HTTP qui sera utilisé sur le serveur.
- l’authentification “config” (
$auth_type = 'config'
) est la bonne vieille méthode : nom d’utilisateur et mot de passe sont stockés dansconfig.inc.php
. - La méthode d’authentification par cookie (
$auth_type = 'cookie'
) permet de se connecter comme un utilisateur MySQL valide à l’aide des cookies. - La méthode d’authentification “http” permet de se connecter comme un utilisateur MySQL valide à l’aide de HTTP-Auth.
- Le mode d’authentification “signon” (
$auth_type = 'signon'
) permet de se connecter en utilisant des données de session PHP préparée ou en utilisant le script PHP fourni.
Voir aussi
- l’authentification “config” (
-
$cfg['Servers'][$i]['auth_http_realm']
¶ Type: chaîne Valeur par défaut: ''
En utilisant l’authentification auth_type =
http
, ce champ permet de définir un flux d’authentification HTTP basique personnalisé qui sera affiché à l’utilisateur. Si ce n’est pas explicitement spécifié dans votre configuration, une chaîne combinée de « phpMyAdmin » et soit de$cfg['Servers'][$i]['verbose']
ou$cfg['Servers'][$i]['host']
sera utilisée.
-
$cfg['Servers'][$i]['auth_swekey_config']
¶ Type: chaîne Valeur par défaut: ''
Nouveau dans la version 3.0.0.0: Ce paramètre était nommé $cfg[“Servers” ;][$i][“auth_feebee_config” ;] et a été renommé avant la sortie de la version 3.0.0.0.
Obsolète depuis la version 4.6.4: Ce paramètre a été supprimé parce que leurs serveurs ne fonctionnent plus et qu’il ne fonctionnait pas correctement.
Obsolète depuis la version 4.0.10.17: Ce paramètre a été supprimé dans une version de maintenance car leurs serveurs ne fonctionnent plus et ne fonctionnaient pas correctement.
Le nom du fichier contenant les identifiants swekey et les noms de connexion pour l’authentification matérielle. Laissez vide pour désactiver cette fonctionnalité.
-
$cfg['Servers'][$i]['user']
¶ Type: chaîne Valeur par défaut: 'root'
-
$cfg['Servers'][$i]['password']
¶ Type: chaîne Valeur par défaut: ''
En utilisant
$cfg['Servers'][$i]['auth_type']
défini à “config”, c’est 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]['nopassword']
¶ Type: booléen Valeur par défaut: false Obsolète depuis la version 4.7.0: Ce paramètre a été supprimé car il peut produire des résultats inattendus.
Permet d’essayer de se connecter sans mot de passe quand la connexion avec mot de passe a échoué. Ceci peut être utilisé en conjonction avec l’authentification http, quand l’authentification est faite par d’autres moyens et que phpMyAdmin obtient le nom d’utilisateur à partir de auth et utilise un mot de passe « vide » pour se connecter à MySQL. La connexion par mot de passe est d’abord essayée, mais ensuite, en moyen de secours, aucune méthode par mot de passe n’est essayée.
Note
It is possible to allow logging in with no password with the
$cfg['Servers'][$i]['AllowNoPassword']
directive.
-
$cfg['Servers'][$i]['only_db']
¶ Type: chaîne ou tableau Valeur par défaut: ''
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'] = ['db1', 'db2'];
Modifié dans la version 4.0.0: Les versions précédentes permettaient d’indiquer l’ordre d’affichage des noms de bases de données à l’aide de cette directive.
-
$cfg['Servers'][$i]['hide_db']
¶ Type: chaîne Valeur par défaut: ''
Expression régulière pour masquer certaines bases pour les utilisateurs sans privilèges. Ceci ne les masque que pour le listage, l’utilisateur est toujours capable d’y accéder (en utilisant par exemple la zone de requête SQL). Pour limiter l’accès, utiliser le système de privilège de MySQL. Par exemple, pour masquer toutes les bases de données commençant par la lettre « a », utiliser
$cfg['Servers'][$i]['hide_db'] = '^a';
et pour masquer les bases de données « db1 » et « db2 », utiliser
$cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';
Vous pourrez trouver plus d’informations sur les expressions régulières dans la section syntaxe de motif PCRE dans le manuel de référence de PHP.
-
$cfg['Servers'][$i]['verbose']
¶ Type: chaîne Valeur par défaut: ''
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. Pour le mode d’authentification HTTP, tous les caractères non-US-ASCII seront enlevés.
-
$cfg['Servers'][$i]['extension']
¶ Type: chaîne Valeur par défaut: 'mysqli'
Obsolète depuis la version 4.2.0: Ce paramétrage a été supprimé. L’extension
mysql
est uniquement utilisée lorsque l’extensionmysqli
n’est pas disponible. À partir de 5.0.0, seule l’extensionmysqli
peut être utilisée.L’extension PHP MySQL à utiliser (
mysql
oumysqli
).Il est recommandé d’utiliser l’extension
'mysqli'
pour toutes les installations.
-
$cfg['Servers'][$i]['pmadb']
¶ Type: chaîne Valeur par défaut: ''
Le nom de la base de données contenant la configuration de stockage de phpMyAdmin.
Voir la section Stockage de la configuration de phpMyAdmin dans ce document pour voir les avantages de cette fonctionnalité, ainsi qu’une manière rapide de créer cette base de données et les tables nécessaires.
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']
. Pour une installation multi-utilisateurs, renseigner ce paramètre avec le nom de votre base de données centrale contenant la configuration de stockage de phpMyAdmin.
-
$cfg['Servers'][$i]['bookmarktable']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 2.2.0.
Depuis la version 2.2.0, phpMyAdmin permet aux utilisateurs la mise en signets (favoris) des requêtes. Cela peut être utile pour les requêtes que vous utilisez souvent. Pour permettre l’utilisation de cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - saisir le nom de la table dans
$cfg['Servers'][$i]['bookmarktable']
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['relation']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 2.2.4.
Depuis la version 2.2.4, vous pouvez décrire, dans une table spéciale « relation », quel colonne est une clé pour une autre table (une clé étrangère). phpMyAdmin utilise actuellement cela pour :
- rendre cliquable, quand vous affichez la table maître, les valeurs des données qui pointent vers une table étrangère ;
- afficher dans une info-bulle optionnelle « Afficher la colonne » lors du parcours de la table maître, si vous déplacez la souris sur une colonne contenant une clé étrangère (utilise aussi la table “table_info”) ; (voir 6.7 Comment puis-je utiliser la fonctionnalité « Colonnes à afficher » ?)
- en mode modification/insertion, afficher une liste déroulante des clés étrangères disponibles (la valeur de la clé et le champ d’affichage sont indiqués) (voir 6.21 En mode modifier/insérer, comment puis-je voir une liste des valeurs possibles pour une colonne, basée sur une table étrangère ?)
- afficher les liens dans la page de propriétés de la table, pour vérifier l’intégrité référentielle (affiche les clés étrangères manquantes) pour chaque clé décrite ;
- dans Query-by-example, créer des jointures automatiques (voir la section 6.6 Comment puis-je utiliser la table relation dans Query-by-example ?)
- vous permettre d’obtenir un schéma PDF de votre base de données (utilise également la table table_coords).
Les clés peuvent être numériques ou alphanumériques.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table de relation dans
$cfg['Servers'][$i]['relation']
- puis, en tant qu’utilisateur normal, ouvrir phpMyAdmin et pour chacune de vos tables où vous voulez utiliser cette fonctionnalité, cliquer sur Structure/Gestion des relations/ et choisir les colonnes étrangers.
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.Note
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']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 2.3.0.
Depuis la version 2.3.0, vous pouvez décrire dans une table spéciale « table_info », quel colonne doit être affichée comme info-bulle en déplaçant le curseur sur la clé correspondante. Pour permettre l’utilisation de cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['table_info']
(par ex.pma__table_info
) - ensuite, pour chaque table pour laquelle vous voulez utiliser cette fonctionnalité, cliquer sur « Structure/Gestion des relations/Champ à afficher » pour choisir la colonne.
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['table_coords']
¶ Type: chaîne ou false Valeur par défaut: ''
La fonctionnalité Concepteur peut enregistrer l’agencement de la page ; en cliquant sur le bouton « Enregistrer la page » ou « Enregistrer la page sous » dans le menu de conception, il est possible de personnaliser l’agencement et le charger automatiquement lors de la prochaine utilisation du Concepteur. L’agencement est stocké dans cette table. De plus, cette table est également nécessaire pour la fonctionnalité d’exportation de relations PDF, consulter
$cfg['Servers'][$i]['pdf_pages']
pour plus de détails.
-
$cfg['Servers'][$i]['pdf_pages']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 2.3.0.
Depuis la version 2.3.0, phpMyAdmin peut créer des pages PDF montrant les relations entre les tables. De plus, l’interface Concepteur permet de gérer visuellement les relations. Pour ce faire, on doit utiliser 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é). Il faut obligatoirement utiliser la fonctionnalité « relation ».
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre les noms corrects de tables dans
$cfg['Servers'][$i]['table_coords']
et$cfg['Servers'][$i]['pdf_pages']
Cette fonctionnalité peut être désactivée également en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['designer_coords']
¶ Type: chaîne Valeur par défaut: ''
Nouveau dans la version 2.10.0: Depuis la version 2.10.0, une interface Designer est disponible ; elle permet de gérer visuellement les relations.
Obsolète depuis la version 4.3.0: Ce paramètre a été supprimé et les données de positionnement des tables du Designer sont désormais stockées dans
$cfg['Servers'][$i]['table_coords']
.Note
Vous pouvez maintenant supprimer la table pma__designer_coords de votre base de données de stockage de configuration phpMyAdmin et supprimer
$cfg['Servers'][$i]['designer_coords']
de votre fichier de configuration.
-
$cfg['Servers'][$i]['column_info']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 2.3.0.
Cette partie nécessite une mise à jour du contenu ! 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 la section Transformations 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”.
À compter de la version 4.3.0, un nouveau système de transformations orienté saisie a été introduit. Par conséquent, la compatibilité ascendante du code utilisé dans l’ancien système de transformations a été retiré. Il est donc nécessaire de mettre à jour la table column_info afin que les anciennes transformations et le nouveau système de transformations orienté saisie fonctionnent. phpMyAdmin la mettra à jour automatiquement en analysant la structure actuelle de votre table column_info. Cependant, si quelque chose se passait mal avec la mise à jour automatique, vous pouvez utiliser le script SQL qui se trouve dans
./sql/upgrade_column_info_4_3_0+.sql
pour faire la mise à jour manuellement.Pour pouvoir utiliser cette fonctionnalité :
paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdminmettre le nom de la table dans
$cfg['Servers'][$i]['column_info']
(par ex.pma__column_info
)pour mettre à jour votre table PRE-2.5.0 Column_comments, utilisez ceci : et souvenez-vous que la variable dans
config.inc.php
a été renommée de$cfg['Servers'][$i]['column_comments']
en$cfg['Servers'][$i]['column_info']
ALTER TABLE `pma__column_comments` ADD `mimetype` VARCHAR( 255 ) NOT NULL, ADD `transformation` VARCHAR( 255 ) NOT NULL, ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
pour mettre à jour votre table PRE-4.3.0 Column_info manuellement, utilisez ce script SQL :
./sql/upgrade_column_info_4_3_0+.sql
.
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.Note
Pour que la fonctionnalité de mise à jour automatique fonctionne, votre
$cfg['Servers'][$i]['controluser']
doit avoir le privilège ALTER sur la base de donnéesphpmyadmin
. Consulter la Documentation MySQL au sujet de GRANT pour savoir comment donner le privilègeGRANT
à un utilisateur.
-
$cfg['Servers'][$i]['history']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 2.5.0.
Depuis la version 2.5.0, vous pouvez stocker votre historique SQL, ce qui signifie toutes les requêtes que vous saisissez 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
$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 JavaScript est activé dans votre navigateur.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table
$cfg['Servers'][$i]['history']
(par ex.pma_history
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['recent']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 3.5.0.
Depuis la version 3.5.0, vous pouvez afficher les tables récemment utilisées dans le panneau de navigation à gauche. C’est utile pour se rendre directement sur une table sans avoir besoin de la sélectionner dans la base. En utilisant
$cfg['NumRecentTables']
vous pouvez configurer le nombre maximum de tables récentes à afficher. En sélectionnant une table dans cette liste, cela vous amènera directement à la page spécifiée dans$cfg['NavigationTreeDefaultTabTable']
.Sans configurer le stockage, vous pouvez toujours accéder aux tables récemment utilisées, mais elles disparaîtront après votre déconnexion.
Pour pouvoir utiliser cette fonctionnalité de façon persistante :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['recent']
(par ex.pma__recent
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['favorite']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.2.0.
Depuis la version 4.2.0, vous pouvez afficher la liste des tables sélectionnées dans le panneau de navigation à gauche. C’est utile pour se rendre directement sur une table sans avoir besoin sélectionner la base, puis la table. Quand vous sélectionnez une table dans la liste, cela ira dans la page spécifiée dans
$cfg['NavigationTreeDefaultTabTable']
.Vous pouvez ajouter ou retirer des tables de cette liste dans la page structure de la base de données en cliquant sur les icônes étoile à côté du nom des tables. En utilisant
$cfg['NumFavoriteTables']
vous pouvez définir le nombre maximum de tables favorites à afficher.Sans configurer le stockage, vous pouvez toujours accéder aux tables favorites, mais elles disparaîtront après votre déconnexion.
Pour pouvoir utiliser cette fonctionnalité de façon persistante :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['favorite']
(par ex.pma__favorite
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['table_uiprefs']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 3.5.0.
Depuis la version 3.5.0, phpMyAdmin peut être configuré pour se rappeler diverses choses (colonne triée
$cfg['RememberSorting']
, ordre des colonnes et visibilité des colonnes dans une table) pour la navigation dans les tables. Sans configurer le stockage, ces fonctionnalités peuvent être utilisées mais les valeurs disparaîtront après votre déconnexion.Pour pouvoir utiliser cette fonctionnalité de façon persistante :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['table_uiprefs']
(par ex.pma__table_uiprefs
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['users']
¶ Type: chaîne ou false Valeur par défaut: ''
La table utilisée par phpMyAdmin pour stocker les informations sur les noms d’utilisateurs afin de les associer à des groupes d’utilisateurs. Voir l’entrée suivante sur
$cfg['Servers'][$i]['usergroups']
pour plus de détails et les paramètres suggérés.
-
$cfg['Servers'][$i]['usergroups']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.1.0.
Depuis la version 4.1.0, vous pouvez créer différents groupes d’utilisateurs avec des éléments de menu qui y sont attachés. Les utilisateurs peuvent être affectés à ces groupes et l’utilisateur connecté ne devrait voir que les éléments de menu configurés pour le groupe d’utilisateurs auquel ils sont affectés. Pour ce faire, il lui faut deux tables « groupes d’utilisateurs » (enregistrement des éléments de menu autorisés pour chaque groupe d’utilisateurs) et « utilisateurs » (enregistrement des utilisateurs et de leurs affectations aux groupes d’utilisateurs).
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre les noms corrects de table dans
$cfg['Servers'][$i]['users']
(par ex.pma__users
) et$cfg['Servers'][$i]['usergroups']
(par ex.pma__usergroups
)
Cette fonctionnalité peut être désactivée également en définissant la configuration à
false
.Voir aussi
- paramétrer
Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.1.0.
Depuis la version 4.1.0, vous pouvez masquer/afficher les éléments dans l’arbre de navigation.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['navigationhiding']
(par ex.pma__navigationhiding
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['central_columns']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.3.0.
Depuis la version 4.3.0, vous pouvez avoir une liste centrale des colonnes par base de données. Vous pouvez ajouter/retirer des colonnes à la liste selon votre convenance. Ces colonnes de la liste centrale seront disponibles lorsque vous créerez une nouvelle colonne pour une table ou une nouvelle table. Vous pouvez sélectionner une colonne de la liste centrale lors de la création d’une nouvelle colonne. Cela vous épargnera de saisir la même définition de colonne encore et encore, ou de saisir des noms différents pour des colonnes similaires.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['central_columns']
(par ex.pma__central_columns
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['designer_settings']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.5.0.
Depuis la version 4.5.0 les paramètres du Concepteur peuvent être mémorisés. Le choix concernant « Liens angulaires / Directs », « Accrocher à la grille », « Commuter les lignes de relations », « Agrandir / Réduire tout », « Déplacer le menu » et « Épingler le texte » peut être mémorisé de manière persistante.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - ajouter le nom de la table dans
$cfg['Servers'][$i]['designer_settings']
(par ex.pma__designer_settings
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['savedsearches']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.2.0.
Depuis la version 4.2.0, vous pouvez enregistrer et charger des requêtes « query-by-example » à partir du menu Base de données > Panneau de requêtes.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['savedsearches']
(par ex.pma__savedsearches
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['export_templates']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 4.5.0.
Depuis la version 4.5.0, vous pouvez enregistrer et charger des modèles d’exportation.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['export_templates']
(par ex.pma__export_templates
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['tracking']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 3.3.x.
Depuis la version 3.3.x, un mécanisme de suivi est disponible. Il vous aide à suivre toutes les commandes SQL exécutées par phpMyAdmin. Le mécanisme gère la journalisation de la manipulation de données et les déclarations de définition de données. Après son activation, vous pouvez créer des versions de tables.
La création d’une version a deux effets :
- phpMyAdmin enregistre un cliché de la table, y compris sa structure et ses index.
- phpMyAdmin journalise toutes les commandes qui modifie la structure et/ou les données de la table et lie ces commandes au numéro de la version.
Bien sûr, vous pouvez voir les modifications suivies. Dans la page Tracking, un rapport complet est disponible pour chaque version. Pour le rapport, vous pouvez utiliser des filtres, par exemple, vous pouvez obtenir une liste des déclarations dans un intervalle de temps donné. Si vous voulez filtrer les noms d’utilisateurs, vous pouvez saisir « * » pour tous les noms ou une liste de nom séparés par des virgules (« , »). De plus, vous pouvez exporter le rapport (filtré) dans un fichier ou une base de données temporaire.
Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['tracking']
(par ex.pma__tracking
)
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.
-
$cfg['Servers'][$i]['tracking_version_auto_create']
¶ Type: booléen Valeur par défaut: false Définir si le mécanisme de suivi crée automatiquement des versions pour les tables et les vues.
Si ceci est défini à « true » et que vous créez une table ou une vue avec
- CREATE TABLE …
- CREATE VIEW …
et qu’il n’existe pas de version pour celle-ci, le mécanisme de suivi créera automatiquement une version pour vous.
-
$cfg['Servers'][$i]['tracking_default_statements']
¶ Type: chaîne Valeur par défaut: 'CREATE TABLE,ALTER TABLE,DROP TABLE,RENAME TABLE,CREATE INDEX,DROP INDEX,INSERT,UPDATE,DELETE,TRUNCATE,REPLACE,CREATE VIEW,ALTER VIEW,DROP VIEW,CREATE DATABASE,ALTER DATABASE,DROP DATABASE'
Définir la liste des instructions que le mécanisme d’auto-création utilise pour les nouvelles versions.
-
$cfg['Servers'][$i]['tracking_add_drop_view']
¶ Type: booléen Valeur par défaut: true Si une instruction DROP VIEW IF EXISTS sera ajoutée en première ligne dans le journal lors de la création de la vue.
-
$cfg['Servers'][$i]['tracking_add_drop_table']
¶ Type: booléen Valeur par défaut: true Si une instruction DROP TABLE IF EXISTS sera ajoutée en première ligne du journal lors de la création d’une table.
-
$cfg['Servers'][$i]['tracking_add_drop_database']
¶ Type: booléen Valeur par défaut: true Si une instruction DROP DATABASE IF EXISTS sera ajoutée en première ligne du journal lors de la création d’une base de données.
-
$cfg['Servers'][$i]['userconfig']
¶ Type: chaîne ou false Valeur par défaut: ''
Nouveau dans la version 3.4.x.
Depuis la version 3.4.x, phpMyAdmin permet aux utilisateurs de définir eux-mêmes la plupart des préférences et de les stocker en base de données.
Si vous n’autorisez pas le stockage des préférences dans
$cfg['Servers'][$i]['pmadb']
, les utilisateurs pourront quand même personnaliser phpMyAdmin, mais les paramètres seront enregistrés dans le stockage local du navigateur, ou, si indisponible, jusqu’à la fin de la session.Pour pouvoir utiliser cette fonctionnalité :
- paramétrer
$cfg['Servers'][$i]['pmadb']
et la configuration de stockage de phpMyAdmin - mettre le nom de la table dans
$cfg['Servers'][$i]['userconfig']
Cette fonctionnalité peut être désactivée en définissant la configuration à
false
.- paramétrer
-
$cfg['Servers'][$i]['MaxTableUiprefs']
¶ Type: entier Valeur par défaut: 100 Nombre maximum de lignes enregistrées dans la table
$cfg['Servers'][$i]['table_uiprefs']
.Quand les tables sont supprimées ou renommées,
$cfg['Servers'][$i]['table_uiprefs']
peut contenir des données invalides (se référant à des tables qui n’existent plus). Nous ne conservons que ce nombre des lignes les plus récentes dans$cfg['Servers'][$i]['table_uiprefs']
et supprimons automatiquement les lignes plus anciennes.
-
$cfg['Servers'][$i]['SessionTimeZone']
¶ Type: chaîne Valeur par défaut: ''
Définit le fuseau horaire utilisé par phpMyAdmin. Laisser vide pour utiliser le fuseau horaire de votre serveur de base de données. Les valeurs autorisées sont expliquées dans https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
Ceci est utile quand votre serveur de base de données utilise un fuseau horaire différent de celui que vous voulez utiliser dans phpMyAdmin.
-
$cfg['Servers'][$i]['AllowRoot']
¶ Type: booléen Valeur par défaut: true Autoriser ou non un accès à la racine. Il s’agit seulement d’un raccourci pour les règles
$cfg['Servers'][$i]['AllowDeny']['rules']
ci-dessous.
-
$cfg['Servers'][$i]['AllowNoPassword']
¶ Type: booléen Valeur par défaut: false Permet d’autoriser les connexions sans mot de passe. La valeur par défaut est
false
pour ce paramètre, ce qui empêche les accès non voulus à un serveur MySQL pour lequel le mot de passe root est vide ou pour lequel un utilisateur anonyme (vide) a été défini.
-
$cfg['Servers'][$i]['AllowDeny']['order']
¶ Type: chaîne Valeur par défaut: ''
Si votre règle « order » est vide, alors l’autorisation 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’ordre.Veuillez également consulter
$cfg['TrustedProxies']
pour la détection d’adresse IP derrière des serveurs mandataires.
-
$cfg['Servers'][$i]['AllowDeny']['rules']
¶ Type: tableau chaînes Valeur par défaut: array() 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 dans le champ ipmask (notez que ceux contenant SERVER_ADDRESS ne sont pas disponibles sur tous les serveurs web) :
'all' -> 0.0.0.0/0 'localhost' -> 127.0.0.1/8 'localnetA' -> SERVER_ADDRESS/8 'localnetB' -> SERVER_ADDRESS/16 'localnetC' -> SERVER_ADDRESS/24
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 Address, ce qui suit fonctionne :
xxx.xxx.xxx.xxx
(une IP Address exacte)xxx.xxx.xxx.[yyy-zzz]
(une plage d” IP Address)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)
Pour les adresses IPv6, ce qui suit fonctionne :
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
(une adresse IPv6 exacte)xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz]
(une plage d’adresses IPv6)xxxx.xxxx.xxxx.xxxx/nn
(CIDR, adresses IPv6 de type Classless Inter-Domain Routing – routage inter-domaine sans classe)
Mais ce qui suit ne fonctionne pas :
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz]
(plage partielle d’adresses IPv6)
Exemples :
$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow bob from all']; // Allow only 'bob' to connect from any host $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow mary from 192.168.100.[50-100]']; // Allow only 'mary' to connect from host 192.168.100.50 through 192.168.100.100 $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow % from 192.168.[5-6].10']; // Allow any user to connect from host 192.168.5.10 or 192.168.6.10 $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow root from 192.168.5.50','allow % from 192.168.6.10']; // Allow any user to connect from 192.168.6.10, and additionally allow root to connect from 192.168.5.50
-
$cfg['Servers'][$i]['DisableIS']
¶ Type: booléen Valeur par défaut: false Désactiver en utilisant
INFORMATION_SCHEMA
pour retrouver les informations (utiliser des commandesSHOW
à la place), à cause de problèmes de performances quand il y a beaucoup de bases de données.Note
Activer cette option pourrait donner un gain de performance notable sur les serveurs MySQL plus anciens.
-
$cfg['Servers'][$i]['SignonScript']
¶ Type: chaîne Valeur par défaut: ''
Nouveau dans la version 3.5.0.
Le nom du script PHP qui doit être exécuté pour obtenir les crédentiels de connexion. C’est une approche alternative aux sessions basées sur le single signon. Le script doit fournir la fonction appelée
get_login_credentials
qui renvoie le nom d’utilisateur et le mot de passe, en acceptant un seul paramètre d’utilisateur existant (peut être vide). Consulterexamples/signon-script.php
pour un exemple :<?php /** * Single signon for phpMyAdmin * * This is just example how to use script based single signon with * phpMyAdmin, it is not intended to be perfect code and look, only * shows how you can integrate this functionality in your application. */ declare(strict_types=1); // phpcs:disable Squiz.Functions.GlobalFunction /** * This function returns username and password. * * It can optionally use configured username as parameter. * * @param string $user User name * * @return array<int,string> */ function get_login_credentials(string $user): array { /* Optionally we can use passed username */ if (! empty($user)) { return [$user, 'password']; } /* Here we would retrieve the credentials */ return ['root', '']; }
Voir aussi
-
$cfg['Servers'][$i]['SignonSession']
¶ Type: chaîne Valeur par défaut: ''
Nom de la session que sera utilisée pour la méthode d’authentification signon. Vous devrez utiliser quelque chose de différent de
phpMyAdmin
, car c’est le nom de session qu’utilise phpMyAdmin en interne. N’est pris en compte que si$cfg['Servers'][$i]['SignonScript']
n’est pas configuré.Voir aussi
-
$cfg['Servers'][$i]['SignonCookieParams']
¶ Type: array Valeur par défaut: array()
Nouveau dans la version 4.7.0.
Un tableau associatif de paramètres de cookies de session d’autres systèmes d’authentification. Ce n’est pas nécessaire si l’autre système n’utilise pas session_set_cookie_params(). Les clés doivent contenir « lifetime », « path », « domain », « secure » ou « httponly ». Les valeurs valides sont mentionnées dans session_get_cookie_params, et devraient être définies avec les mêmes valeurs que celles utilisées par l’autre application. N’a d’effet que si
$cfg['Servers'][$i]['SignonScript']
n’est pas configuré.Voir aussi
-
$cfg['Servers'][$i]['SignonURL']
¶ Type: chaîne Valeur par défaut: ''
URL où sera redirigé l’utilisateur pour se connecter avec le mode d’authentification “signon”. Doit être absolue et inclure le protocole.
Voir aussi
-
$cfg['Servers'][$i]['LogoutURL']
¶ Type: chaîne Valeur par défaut: ''
URL où sera redirigé l’utilisateur après la déconnexion (ceci n’affecte pas la mode d’authentification “config”). Doit être absolue et inclure le protocole.
-
$cfg['Servers'][$i]['hide_connection_errors']
¶ Type: booléen Valeur par défaut: false Nouveau dans la version 4.9.8.
Quand afficher ou masquer les erreurs de connexions MySQL/MariaDB détaillées sur la page d’identification.
Note
Ce message d’erreur peut contenir le nom d’hôte ou l’adresse IP du serveur de base de donnée cible, ce qui peut donner des informations sur votre réseau à un pirate.
Paramètres génériques¶
-
$cfg['DisableShortcutKeys']
¶ Type: booléen Valeur par défaut: false Vous pouvez aussi désactiver les raccourcis en définissant à true
$cfg['SuhosinDisableWarning']
.
-
$cfg['ServerDefault']
¶ Type: entier Valeur par défaut: 1 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['VersionCheck']
¶ Type: booléen Valeur par défaut: true Active la vérification des dernières versions en utilisant JavaScript sur la page principale de phpMyAdmin par un accès direct à index.php.route=/version_check.php.
Note
Ce paramètre peut être ajusté par votre vendeur.
-
$cfg['ProxyUrl']
¶ Type: chaîne Valeur par défaut: ''
L’URL du serveur mandataire à utiliser quand phpMyAdmin doit accéder à Internet comme par exemple pour récupérer l’information au sujet de la plus récente version de phpMyAdmin ou pour envoyer des rapports d’erreur. Ceci est nécessaire si le serveur sur lequel phpMyAdmin est installé n’a pas d’accès direct à Internet. Le format est « nom de serveur:numéro de port »
-
$cfg['ProxyUser']
¶ Type: chaîne Valeur par défaut: ''
Le code utilisateur pour s’authentifier sur le serveur mandataire. Par défaut, aucune authentification n’est utilisée. Si un code utilisateur est fourni, l’authentification de base sera utilisée. Aucun autre type d’authentification n’est permis pour le moment.
-
$cfg['ProxyPass']
¶ Type: chaîne Valeur par défaut: ''
Le mot de passe pour s’authentifier sur le serveur mandataire.
-
$cfg['MaxDbList']
¶ Type: entier Valeur par défaut: 100 Le nombre maximum de noms de bases de données à afficher dans la liste des bases de données.
-
$cfg['MaxTableList']
¶ Type: entier Valeur par défaut: 250 Le nombre maximum de tables à afficher dans le panneau principal (sauf sur le panneau Exporter).
-
$cfg['ShowHint']
¶ Type: booléen Valeur par défaut: true Affichage ou pas des astuces (par exemple, les astuces lors du survol des en-têtes de tables par la souris).
-
$cfg['MaxCharactersInDisplayedSQL']
¶ Type: entier Valeur par défaut: 1000 Le nombre maximum de caractères d’une requête SQL à afficher. La limite par défaut de 1000 devrait être correcte pour éviter l’affichage de tonnes de code hexadécimal représentant des BLOB, mais certains utilisateurs ont de vraies requêtes SQL qui dépassent 1000 caractères. Également, si la longueur d’une requête excède cette limite, la requête n’est pas conservée dans l’historique.
-
$cfg['PersistentConnections']
¶ Type: booléen Valeur par défaut: false Indique si les connexions persistantes doivent être utilisées ou pas.
-
$cfg['ForceSSL']
¶ Type: booléen Valeur par défaut: false Obsolète depuis la version 4.6.0: Ce paramètre n’est plus disponible depuis phpMyAdmin 4.6.0. Veuillez adapter la configuration de votre serveur Web en conséquence.
Pour forcer ou pas l’utilisation de https lors de l’accès à phpMyAdmin. Dans une configuration de proxy inverse, paramétrer ceci à
true
n’est pas pris en charge.Note
Dans certaines configurations −comme un proxy SSL séparé ou un équilibreur de charge (load balancer)− vous pourriez avoir besoin de définir
$cfg['PmaAbsoluteUri']
pour avoir une redirection correcte.
-
$cfg['MysqlSslWarningSafeHosts']
¶ Type: array Valeur par défaut: ['127.0.0.1', 'localhost']
Cette recherche est sensible à la casse et ne correspondra qu’à la chaîne exacte. Si votre installation n’utilise pas le SSL mais est sûre parce que vous utilisez une connexion locale ou un réseau privé, vous pouvez ajouter votre nom d’hôte ou IP à la liste. Vous pouvez également supprimer les entrées par défaut pour n’inclure que les vôtres.
Cette vérification utilise la valeur de
$cfg['Servers'][$i]['host']
.Nouveau dans la version 5.1.0.
Exemple de configuration
$cfg['MysqlSslWarningSafeHosts'] = ['127.0.0.1', 'localhost', 'mariadb.local'];
-
$cfg['ExecTimeLimit']
¶ Type: entier [nombre de secondes] Valeur par défaut: 300 Définit le nombre de secondes pendant lequel un script est autorisé à s’exécuter. Si ce chiffre est zéro, aucune limite de temps n’est imposée. Ce paramètre est utilisé lors de l’importation/exportation de fichiers dump et dans la fonctionnalité de synchronisation mais n’a aucun effet lorsque PHP est exécuté en mode sécurisé.
-
$cfg['SessionSavePath']
¶ Type: chaîne Valeur par défaut: ''
Chemin de stockage des données de session (session_save_path PHP parameter).
Avertissement
Ce dossier ne doit pas être publiquement accessible via le serveur web, sinon vous risquez la fuite de données privées provenant de votre session.
-
$cfg['MemoryLimit']
¶ Type: chaîne [nombre d’octets] Valeur par défaut: '-1'
Définit le nombre d’octets qu’un script est autorisé à allouer. Si ce nombre est défini à
'-1'
, aucune limite n’est imposée. S’il est défini à'0'
, aucun changement à la limite de mémoire n’est tenté et le réglage dephp.ini
memory_limit
est utilisé.Ce paramètre est utilisé lors de l’importation/exportation de fichiers de listage, il ne faut donc pas mettre une valeur trop basse ici. Il n’a aucun effet lorsque PHP est exécuté en mode sécurisé.
Vous pouvez aussi utiliser une chaîne comme dans le fichier
php.ini
, par ex. “16M”. Assurez-vous de ne pas oublier le suffixe (16 signifie 16 octets !)
-
$cfg['SkipLockedTables']
¶ Type: booléen Valeur par défaut: false Marque les tables utilisées et permet de montrer les bases de données avec des tables verrouillées (depuis la version MySQL 3.23.30).
-
$cfg['ShowSQL']
¶ Type: booléen Valeur par défaut: true Définit si les requêtes SQL générées par phpMyAdmin doivent être affichées.
-
$cfg['RetainQueryBox']
¶ Type: booléen Valeur par défaut: false Définit si la boîte de requête SQL doit rester affichée après soumission de la requête.
-
$cfg['CodemirrorEnable']
¶ Type: booléen Valeur par défaut: true Définit s’il faut utiliser un éditeur de code JavaScript pour les boîtes de requêtes. CodeMirror fournit la coloration syntaxique et la numérotation des lignes. Cependant, un double clic pour copier des contenus dans le presse-papiers dans certaines distributions GNU/Linux (comme Ubuntu) n’est pas supporté dans tous les navigateurs.
-
$cfg['LintEnable']
¶ Type: booléen Valeur par défaut: true Nouveau dans la version 4.5.0.
Définit si l’analyseur syntaxique doit être utilisé pour trouver les erreurs éventuelles dans la requête avant de l’exécuter.
-
$cfg['DefaultForeignKeyChecks']
¶ Type: chaîne Valeur par défaut: 'default'
La valeur par défaut de la case à cocher pour la vérification des clés étrangères, qui sert à désactiver/activer les vérification de clés étrangères pour certaines requêtes. Les valeurs possibles sont « Valeur par défaut du serveur », « Activer » ou « Désactiver ». Si « Valeur par défaut du serveur » est sélectionné, la valeur de la variable MySQL
FOREIGN_KEY_CHECKS
est utilisée.
-
$cfg['AllowUserDropDatabase']
¶ Type: booléen Valeur par défaut: false Avertissement
Ceci n’est pas une mesure de sécurité car il existera toujours des moyens de la contourner. Si vous voulez empêcher les utilisateurs de supprimer des bases de données, révoquez leurs privilèges DROP correspondant.
Définit si les utilisateurs lambda (non administrateur) sont autorisés à supprimer leur propre base de données. S’il est défini à
FALSE
, le lien guilabel:Supprimer la base ne sera pas visible, et même la commandeDROP DATABASE ma_base_de_donnees
sera rejetée. Très pratique pour un FAI avec beaucoup de clients.Veuillez noter que cette limitation des requêtes SQL n’est pas aussi stricte en utilisant les privilèges MySQL. Cela est dû à la nature des requêtes SQL qui peuvent être très compliquées. Aussi, ce choix doit être vu comme une aide pour éviter une suppression accidentelle plutôt qu’une limitation de privilèges stricte.
-
$cfg['Confirm']
¶ Type: booléen Valeur par défaut: true 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['UseDbSearch']
¶ Type: booléen Valeur par défaut: true Définit si « rechercher une chaîne dans la base de données » est activé.
-
$cfg['IgnoreMultiSubmitErrors']
¶ Type: booléen Valeur par défaut: false 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['enable_drag_drop_import']
¶ Type: booléen Valeur par défaut: true Si oui ou non, la fonctionnalité drag&drop est activée. Lorsqu’elle est activée, un utilisateur peut déposer un fichier dans son navigateur et phpMyAdmin essaiera d’importer le fichier.
-
$cfg['URLQueryEncryption']
¶ Type: booléen Valeur par défaut: false Nouveau dans la version 4.9.8.
Définir si phpMyAdmin chiffrera les données sensibles (comme le nom de la base de données et le nom de la table) dans la chaîne de requête URL. La valeur par défaut est de ne pas chiffrer la chaîne de requête URL.
-
$cfg['URLQueryEncryptionSecretKey']
¶ Type: chaîne Valeur par défaut: ''
Nouveau dans la version 4.9.8.
Une clé secrète pour dé/crypter la requête dans l’URL. Doit faire 32 octets de long.
-
$cfg['maxRowPlotLimit']
¶ Type: entier Valeur par défaut: 500 Nombre maximum de lignes récupérées pour la recherche par zoom.
Options du mode d’authentification « cookie »¶
-
$cfg['blowfish_secret']
¶ Type: chaîne Valeur par défaut: ''
Le mode d’authentification par “cookie” utilise l’extension Sodium`pour chiffrer les cookies (voir :term:`Cookie). Si vous utilisez le mode d’authentification par “cookie”, saisissez ici une chaîne générée d’octets aléatoires à utiliser comme clé de cryptage. Elle sera utilisée de manière interne par l’extension Sodium : cette clé de cryptage ne vous sera pas demandée.
Comme une chaîne binaire n’est généralement pas imprimable, elle peut être convertie en une représentation hexadécimale (à l’aide d’une fonction comme sodium_bin2hex) et ensuite utilisée dans le fichier de configuration. Par exemple :
// The string is a hexadecimal representation of a 32-bytes long string of random bytes. $cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
Il est recommandé d’utiliser une chaîne binaire. Toutefois, si les 32 octets de la chaîne sont des caractères visibles, une fonction comme sodium_bin2hex n’est pas nécessaire. Par exemple :
// A string of 32 characters. $cfg['blowfish_secret'] = 'JOFw435365IScA&Q!cDugr!lSfuAz*OW';
Avertissement
La clé de cryptage doit avoir une longueur de 32 octets. Si elle est plus longue que la longueur des octets, seuls les 32 premiers octets seront utilisés, et si elle est plus courte, une nouvelle clé temporaire sera automatiquement générée pour vous. Toutefois, cette clé temporaire ne durera que le temps de la session.
Note
La configuration est appelée blowfish_secret pour des raisons historiques car Blowfish était à l’origine utilisé pour faire le chiffrement.
Modifié dans la version 3.1.0: Depuis la version 3.1.0, phpMyAdmin peut générer ceci à la volée, mais cela affaiblit un peu la sécurité car le mot de passe est stocké en session et de plus, cela rend impossible de se rappeler du nom de l’utilisateur à partir du cookie.
Modifié dans la version 5.2.0: Depuis la version 5.2.0, phpMyAdmin utilise les fonctions PHP sodium_crypto_secretbox et sodium_crypto_secretbox_open pour crypter et décrypter les cookies, respectivement.
-
$cfg['CookieSameSite']
¶ Type: chaîne Valeur par défaut: 'Strict'
Nouveau dans la version 5.1.0.
Il définit l’attribut SameSite de l’en-tête de réponse Set-Cookie HTTP. Les valeurs valides sont :
Lax
Strict
Aucun(e)
Voir aussi
-
$cfg['LoginCookieRecall']
¶ Type: booléen Valeur par défaut: true Définit si le nom de l’utilisateur précédent devrait apparaître dans le panneau de connexion en mode cookie.
Ceci est automatiquement désactivé si vous n’avez pas configuré
$cfg['blowfish_secret']
.
-
$cfg['LoginCookieValidity']
¶ Type: entier [nombre de secondes] Valeur par défaut: 1440 Définit la durée de validité d’un cookie de connexion. Veuillez notez que l’option de configuration php session.gc_maxlifetime pourrait limiter la validité de session, et si la session est perdue, le cookie de connexion est aussi invalidé. Il est donc conseillé de définir
session.gc_maxlifetime
au moins aussi haut que la valeur de$cfg['LoginCookieValidity']
.
-
$cfg['LoginCookieStore']
¶ Type: entier [nombre de secondes] Valeur par défaut: 0 Définit la durée de stockage d’un cookie de connexion dans votre navigateur. Par défaut, 0 signifie qu’il sera conservé pour la session en cours. Ceci est recommandé pour les environnements non sécurisés.
-
$cfg['LoginCookieDeleteAll']
¶ Type: booléen Valeur par défaut: true Si activé (par défaut), la déconnexion supprime les cookies pour tous les serveurs, sinon seulement pour le serveur en cours. Définir ce paramètre à
false
permet d’oublier plus facilement de se déconnecter des autres des autres serveurs quand vous en utilisez plusieurs.
-
$cfg['AllowArbitraryServer']
¶ Type: booléen Valeur par défaut: false Si ce paramètre est activé, il vous permet de vous connecter à des serveurs arbitraires en utilisant l’authentification par cookie.
Note
Veuillez utiliser ce paramètre avec précaution, car il peut permettre aux utilisateurs d’accéder aux serveurs MySQL placés derrière votre pare-feu où votre serveur HTTP est situé. Voir également
$cfg['ArbitraryServerRegexp']
.
-
$cfg['ArbitraryServerRegexp']
¶ Type: chaîne Valeur par défaut: ''
Restreint les serveurs MySQL auxquels l’utilisateur peut se connecter quand
$cfg['AllowArbitraryServer']
est activée en faisant correspondre l’adresse IP ou le nom d’hôte du serveur MySQL à l’expression régulière donnée. L’expression régulière doit être entourée d’un caractère délimiteur.Il est recommandé d’utiliser des symboles de début et de fin dans l’expression régulière, de sorte à éviter les correspondances partielles sur la chaîne.
Exemples :
// Allow connection to three listed servers: $cfg['ArbitraryServerRegexp'] = '/^(server|another|yetdifferent)$/'; // Allow connection to range of IP addresses: $cfg['ArbitraryServerRegexp'] = '@^192\.168\.0\.[0-9]{1,}$@'; // Allow connection to server name ending with -mysql: $cfg['ArbitraryServerRegexp'] = '@^[^:]\-mysql$@';
Note
Le nom complet du serveur est utilisé, il peut inclure également le port. En raison de la permissivité de MySQL pour les paramètres de connexion, il est possible d’utiliser des chaînes comme
`server:3306-mysql`
. Ceci peut être utilisé pour outrepasser l’expression régulière par le suffixe lors de la connexion à un autre serveur.
-
$cfg['CaptchaMethod']
¶ Type: chaîne Valeur par défaut: 'invisible'
Les valeurs valides sont :
'invisible'
Utiliser le mode invisible de ReCaptcha v2 ;'checkbox'
Utiliser une case à cocher pour vérifier que l’utilisateur n’est pas un robot.
Nouveau dans la version 5.0.3.
-
$cfg['CaptchaApi']
¶ Type: chaîne Valeur par défaut: 'https://www.google.com/recaptcha/api.js'
Nouveau dans la version 5.1.0.
L’URL de l’API du service reCaptcha v2, soit celle de Google, soit une autre compatible.
-
$cfg['CaptchaCsp']
¶ Type: chaîne Valeur par défaut: 'https://apis.google.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://ssl.gstatic.com/'
Nouveau dans la version 5.1.0.
L’extrait de la politique de sécurité du contenu (URL à partir desquelles le contenu peut être intégré) pour le service reCaptcha v2, qu’il s’agisse de celui de Google ou d’un service compatible.
-
$cfg['CaptchaRequestParam']
¶ Type: chaîne Valeur par défaut: 'g-recaptcha'
Nouveau dans la version 5.1.0.
Le paramètre de requête utilisé pour le service reCaptcha v2.
-
$cfg['CaptchaResponseParam']
¶ Type: chaîne Valeur par défaut: 'g-recaptcha-response'
Nouveau dans la version 5.1.0.
Le paramètre de réponse utilisé pour le service reCaptcha v2.
-
$cfg['CaptchaLoginPublicKey']
¶ Type: chaîne Valeur par défaut: ''
La clef public pour le service reCaptcha peut être obtenue depuis la « Console Admin » sur https://www.google.com/recaptcha/intro/v3.htmlabout/.
Voir aussi
reCaptcha sera alors utilisé avec Mode d’authentification par « cookie ».
Nouveau dans la version 4.1.0.
-
$cfg['CaptchaLoginPrivateKey']
¶ Type: chaîne Valeur par défaut: ''
La clé privée pour le service de reCaptcha que vous pourrez obtenir depuis la « Console Admin » sur https://www.google.com/recaptcha/about/.
Voir aussi
reCaptcha sera alors utilisé avec Mode d’authentification par « cookie ».
Nouveau dans la version 4.1.0.
-
$cfg['CaptchaSiteVerifyURL']
¶ Type: chaîne Valeur par défaut: ''
L’URL du service reCaptcha pour faire une action siteverify.
reCaptcha sera alors utilisé avec Mode d’authentification par « cookie ».
Nouveau dans la version 5.1.0.
Panneau principal¶
-
$cfg['ShowStats']
¶ Type: booléen Valeur par défaut: true Définit s’il faut afficher ou non les statistiques et l’usage de l’espace de stockage des bases de données et des 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['ShowServerInfo']
¶ Type: booléen|chaîne Valeur par défaut: true Définit si l’affichage des informations détaillées sur le serveur doit se faire sur la page principale. Les valeurs possibles sont :
true
pour afficher toutes les informations serveurfalse
pour cacher les informations serveur'database-server'
pour n’afficher que les informations du serveur de base de données'web-server'
pour n’afficher que les informations du serveur web
You can additionally hide more information by using
$cfg['Servers'][$i]['verbose']
.Modifié dans la version 6.0.0: Ajout des options
'database-server'
et'web-server'
.
-
$cfg['ShowPhpInfo']
¶ Type: booléen Valeur par défaut: false Définit si Informations PHP est affiché dans le cadre principal (de droite) de démarrage.
Veuillez noter que pour empêcher l’utilisation de
phpinfo()
dans les scripts, vous devez mettre ceci dans votre fichierphp.ini
:disable_functions = phpinfo()
Avertissement
En activant la page phpinfo, vous perdrez beaucoup d’informations sur la configuration du serveur. Il n’est pas recommandé de l’activer sur les installations partagées.
Cela pourrait également rendre certaines attaques à distance plus facile sur vos installations, activez donc ceci seulement lorsque c’est nécessaire.
-
$cfg['ShowChgPassword']
¶ Type: booléen Valeur par défaut: true Définit si Modifier le mot de passe est affiché dans le cadre principal (de droite) de démarrage. Ce paramètre ne vérifie pas les commandes MySQL saisies directement.
Merci de noter qu’activer le lien Modifier le mot de passe n’a pas d’effet avec le mode d’authentification « config » : leur mot de passe étant codé dans le fichier de configuration, les utilisateurs n’ont pas la possibilité de le modifier.
-
$cfg['ShowCreateDb']
¶ Type: booléen Valeur par défaut: true Définit si on affiche ou pas le formulaire de création de base de données dans le cadre principal (de droite) de démarrage. Ce paramètre ne vérifie pas les commandes MySQL saisies directement.
-
$cfg['ShowGitRevision']
¶ Type: booléen Valeur par défaut: true Définit s’il faut afficher des informations sur la révision Git actuelle (le cas échéant) sur le panneau principal.
-
$cfg['MysqlMinVersion']
¶ Type: array Définit la version minimum de MySQL qui est supportée. La version par défaut est choisie par l’équipe phpMyAdmin ; cependant ce paramètre a été demandé par un développeur du panneau de contrôle Plesk pour faciliter l’intégration avec d’anciens serveurs MySQL (où la plupart des fonctionnalités de phpMyAdmin sont possibles).
Structure de base de données¶
-
$cfg['ShowDbStructureCharset']
¶ Type: booléen Valeur par défaut: false Defines whether to show a column displaying the charset for all tables in the database structure page.
-
$cfg['ShowDbStructureComment']
¶ Type: booléen Valeur par défaut: false Defines whether to show a column displaying the comments for all tables in the database structure page.
-
$cfg['ShowDbStructureCreation']
¶ Type: booléen Valeur par défaut: false Définit si la page de structure de base de données (liste des tables) a une colonne « Création » qui s’affiche lorsque chaque table est créée.
-
$cfg['ShowDbStructureLastUpdate']
¶ Type: booléen Valeur par défaut: false Définit si la page de structure de base de données (liste des tables) a une colonne « Dernière mise à jour » qui s’affiche pour la date de dernière mise à jour de la table.
-
$cfg['ShowDbStructureLastCheck']
¶ Type: booléen Valeur par défaut: false Définit si la page de structure de base de données (liste des tables) a une colonne « Dernière vérification » qui affiche la date de la dernière vérification de la table.
-
$cfg['HideStructureActions']
¶ Type: booléen Valeur par défaut: true Définit si les actions sur la structure des tables doivent être masquées dans une liste déroulante « Plus ».
-
$cfg['ShowColumnComments']
¶ Type: booléen Valeur par défaut: true Définit si les commentaires des colonnes doivent être affichés dans la vue de structure de table.
Mode de navigation¶
Type: chaîne Valeur par défaut: 'icons'
Définit si les liens vers les tables contiennent des « Icônes », du « Texte » ou « Les deux ».
-
$cfg['ActionLinksMode']
¶ Type: chaîne Valeur par défaut: 'both'
Si défini à
icons
, les liens vers les propriétés des tables et les menus seront affichés avec des icônes à la place du texte (comme Parcourir, Sélectionner, Insérer, …). Peut être défini à'both'
si vous voulez des icônes ET du texte. Quand cette valeur vauttext
il ne sera affiché que du texte.
-
$cfg['RowActionType']
¶ Type: chaîne Valeur par défaut: 'both'
Pour activer ou non l’affichage des icônes ou du texte ou des deux dans le segment action d’une ligne de table. Les valeurs peuvent être
'icons'
,'text'
ou'both'
.
-
$cfg['ShowAll']
¶ Type: booléen Valeur par défaut: false Définit si un utilisateur peut afficher un bouton « Tout afficher » en mode navigation ou dans tous les cas. Par défaut, il est affiché pour les petites tables (moins de 500 lignes) pour éviter les problèmes de performance.
-
$cfg['MaxRows']
¶ Type: entier Valeur par défaut: 25 Nombre de lignes affichées lors de la navigation sur un ensemble de résultats et si aucune clause LIMIT n’est utilisée. Si le nombre des colonnes est supérieur à cette valeur, des liens « Précédent » et « Suivant » seront affichés. Les valeurs possibles sont 25, 50, 100, 250, 500.
-
$cfg['Order']
¶ Type: chaîne Valeur par défaut: 'SMART'
Définit si les colonnes sont affichées en ordre croissant (
ASC
), décroissant (DESC
) ou en ordre « intelligent » (SMART
) - c’est-à-dire en ordre décroissant pour les colonnes de type TIME, DATE, DATETIME & TIMESTAMP et croissant pour les autres - par défaut.Modifié dans la version 3.4.0: Depuis phpMyAdmin 3.4.0, la valeur par défaut est
'SMART'
.
-
$cfg['DisplayBinaryAsHex']
¶ Type: booléen Valeur par défaut: true Defines whether the « Show binary contents as HEX » browse option is ticked by default.
Nouveau dans la version 3.3.0.
Obsolète depuis la version 4.3.0: Ce paramètre a été supprimé.
-
$cfg['GridEditing']
¶ Type: chaîne Valeur par défaut: 'double-click'
Définit quelle action (
double-clic
ouclic
) déclenche l’édition de la grille. Peut être désactivé avec la valeurdisabled
.
-
$cfg['RelationalDisplay']
¶ Type: chaîne Valeur par défaut: 'K'
Définit le comportement initial pour Options > Relations.
K
, qui est la valeur par défaut, affiche la clé alors queD
montre colonne d’affichage.
-
$cfg['SaveCellsAtOnce']
¶ Type: booléen Valeur par défaut: false Définit s’il faut enregistrer toutes les cellules éditées à la fois en édition de grille.
Mode de modification¶
-
$cfg['ProtectBinary']
¶ Type: booléen ou chaîne Valeur par défaut: 'blob'
Définit si les colonnes
BLOB
ouBINARY
sont protégés lors de l’affichage du contenu d’une table. Les valeurs valides sont :false
pour permettre la modification de toutes les colonnes ;blob
pour autoriser la modification de toutes les colonnes sauf les colonnes de typeBLOBS
;'noblob'
pour désactiver la modification de toutes les colonnes sauf les colonnes de typeBLOBS
(le contraire de'blob'
) ;'all'
pour interdire la modification des colonnes de typesBINARY
ouBLOB
.
-
$cfg['ShowFunctionFields']
¶ Type: booléen Valeur par défaut: true Définit si les champs des fonctions MySQL doivent être affichés en mode modification/insertion. Depuis la version 2.10, l’utilisateur peut changer ce paramètre à partir de l’interface.
-
$cfg['ShowFieldTypesInDataEditView']
¶ Type: booléen Valeur par défaut: true Définit si les colonnes type doivent être affichées en mode modification/insertion. L’utilisateur peut changer ce paramètre à partir de l’interface.
-
$cfg['InsertRows']
¶ Type: entier Valeur par défaut: 2 Définit le nombre de lignes par défaut devant être saisies depuis la page d’insertion. Les utilisateurs peuvent le modifier manuellement depuis le bas de cette page pour ajouter/retirer des lignes vides.
-
$cfg['ForeignKeyMaxLimit']
¶ Type: entier Valeur par défaut: 100 S’il y a moins d’éléments que ce nombre dans le jeu de clés étrangères, alors un menu déroulant des clés étrangères est proposé, avec le style décrit dans le paramètre
$cfg['ForeignKeyDropdownOrder']
.
-
$cfg['ForeignKeyDropdownOrder']
¶ Type: array Valeur par défaut: array(“content-id”, “id-content”) Il y a plusieurs méthodes d’affichage pour les champs du menu déroulant des clés étrangères, proposant la clé et sa valeur. Le tableau doit contenir une ou les deux valeurs suivantes :
content-id
,id-content
.
Exporter et importer des paramètres¶
-
$cfg['ZipDump']
¶ Type: booléen Valeur par défaut: true
-
$cfg['GZipDump']
¶ Type: booléen Valeur par défaut: true
-
$cfg['BZipDump']
¶ Type: booléen Valeur par défaut: true Définit si on utilise la compression zip/GZip/BZip2 lors de la création de fichiers d’exportation
-
$cfg['CompressOnFly']
¶ Type: booléen Valeur par défaut: true 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 aux utilisateurs 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['Export']
¶ Type: array Valeur par défaut: array(…) 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['Export']['format']
¶ Type: chaîne Valeur par défaut: 'sql'
Format d’exportation par défaut.
-
$cfg['Export']['method']
¶ Type: chaîne Valeur par défaut: 'quick'
Définit le mode d’affichage du formulaire d’export lors de son chargement. Les valeurs permises sont :
quick
pour afficher le nombre minimum d’options à configurercustom
pour afficher toutes les options de configuration disponiblescustom-no-form
est identique àcustom
mais n’affiche pas l’option d’export rapide
-
$cfg['Export']['compression']
¶ Type: chaîne Valeur par défaut: 'none'
Méthode de compression de l’exportation par défaut. Les valeurs possibles sont
'none'
,'zip'
ou'gzip'
.
-
$cfg['Export']['charset']
¶ Type: chaîne Valeur par défaut: ''
Définit l’encodage pour l’exportation générée. Par défaut, aucune conversion d’encodage n’est effectuée en supposant UTF-8.
-
$cfg['Export']['file_template_table']
¶ Type: chaîne Valeur par défaut: '@TABLE@'
Modèle de nom de fichier par défaut pour les exportations de tables.
-
$cfg['Export']['file_template_database']
¶ Type: chaîne Valeur par défaut: '@DATABASE@'
Modèle de nom de fichier par défaut pour les exportations de bases de données.
-
$cfg['Export']['file_template_server']
¶ Type: chaîne Valeur par défaut: '@SERVER@'
Modèle de nom de fichier par défaut pour les exportations de serveurs.
-
$cfg['Export']['remove_definer_from_definitions']
¶ Type: booléen Valeur par défaut: false Supprimer la clause DEFINE des définitions des événements, des vues ou des procédures.
Nouveau dans la version 5.2.0.
-
$cfg['Import']
¶ Type: array Valeur par défaut: array(…) Dans ce tableau sont définis les paramètres par défaut pour l’importation. Les noms des éléments sont similaires aux textes affichés dans la page d’importation, de sorte que vous pouvez facilement identifier ce qu’ils signifient.
-
$cfg['Import']['charset']
¶ Type: chaîne Valeur par défaut: ''
Définit l’encodage pour l’importation. Par défaut, aucune conversion d’encodage n’est effectuée en supposant UTF-8.
-
$cfg['Schema']
¶ Type: array Valeur par défaut: array(…)
-
$cfg['Schema']['format']
¶ Type: chaîne Valeur par défaut: 'pdf'
Définit le format par défaut pour l’exportation des schémas. Les valeurs possibles sont
'pdf'
,'eps'
,'dia'
ou'svg'
.
Paramètres d’affichage des onglets¶
-
$cfg['TabsMode']
¶ Type: chaîne Valeur par défaut: 'both'
Définit si les onglets de menu contiennent des « Icônes », du « Texte » ou « les deux ».
-
$cfg['PropertiesNumColumns']
¶ Type: entier Valeur par défaut: 1 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. 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']
¶ Type: chaîne Valeur par défaut: 'welcome'
Définit l’onglet affiché par défaut dans la vue serveur. Les valeurs autorisées sont les traductions équivalentes à :
`welcome
(recommandé pour les installations multi-utilisateurs)databases
,status
variables
privileges
-
$cfg['DefaultTabDatabase']
¶ Type: chaîne Valeur par défaut: 'structure'
Définit l’onglet affiché par défaut pour la vue base de données. Les valeurs possibles sont les traductions équivalentes à :
structure
sql
search
opérations
-
$cfg['DefaultTabTable']
¶ Type: chaîne Valeur par défaut: 'browse'
Définit l’onglet affiché par défaut pour la vue base de données. Les valeurs autorisées sont les traductions équivalentes à :
structure
sql
search
insérer
afficher
Options PDF¶
-
$cfg['PDFPageSizes']
¶ Type: array Valeur par défaut: array('A3', 'A4', 'A5', 'letter', 'legal')
Tableau des différentes tailles de papier possibles pour la création des pages PDF.
Vous ne devriez jamais avoir besoin de modifier cela.
-
$cfg['PDFDefaultPageSize']
¶ Type: chaîne Valeur par défaut: 'A4'
Taille de page par défaut à utiliser pour la création de pages PDF. Les valeurs autorisées sont énumérées dans
$cfg['PDFPageSizes']
.
Langues¶
-
$cfg['DefaultLang']
¶ Type: chaîne Valeur par défaut: 'en'
Définit la langue à utiliser par défaut, s’il n’est pas définit par le navigateur ou l’utilisateur. Le fichier de langue correspondant doit être dans locale/code/LC_MESSAGES/phpmyadmin.mo.
-
$cfg['DefaultConnectionCollation']
¶ Type: chaîne Valeur par défaut: 'utf8mb4_general_ci'
Définit la collation utilisée par défaut. Consultez la documentation MySQL pour les jeux de caractères pour obtenir une liste des valeurs possibles.
-
$cfg['Lang']
¶ Type: chaîne Valeur par défaut: non défini Force la langue à utiliser. Le fichier de langue correspondant doit être dans locale/code/LC_MESSAGES/phpmyadmin.mo.
-
$cfg['FilterLanguages']
¶ Type: chaîne Valeur par défaut: ''
Limite la liste des langues disponibles à celle correspondant à une expression régulière donnée. Par exemple, si vous ne voulez que le tchèque et l’anglais, vous devrez définir le filtre suivant :
'^(cs|en)'
.
-
$cfg['RecodingEngine']
¶ Type: chaîne Valeur par défaut: 'auto'
Pour pouvez choisir ici quelles fonctions seront utilisées pour la conversion de page de code. Les valeurs autorisées sont :
'auto'
- utilise automatiquement une fonction disponible (la première testée est iconv, puis mbstring)'iconv'
- utilise les fonctions iconv ou libiconv,'mb'
- utilise l’extension mbstring'none'
- désactive la conversion de l’encodage
Quand la conversion de caractères est activée, cela active un menu déroulant dans les pages d’export et d’import, afin de choisir le jeu de caractères utilisé lors de l’exportation d’un fichier. La valeur par défaut dans ce menu provient de
$cfg['Export']['charset']
et$cfg['Import']['charset']
.Modifié dans la version 6.0.0: La prise en charge de l’extension Recode a été supprimée. La valeur
'recode'
est ignorée et la valeur par défaut ('auto'
) est utilisée à la place.
-
$cfg['IconvExtraParams']
¶ Type: chaîne Valeur par défaut: '//TRANSLIT'
Spécifie des paramètres pour iconv utilisés dans la conversion de jeux de caractères. Voir la documentation iconv pour plus de renseignements. Par défaut
//TRANSLIT
est utilisé de sorte que les caractères invalides soient substitués.
-
$cfg['AvailableCharsets']
¶ Type: array Valeur par défaut: array(…) Jeux de caractères disponibles pour la conversion MySQL. Vous pouvez ajouter le vôtre (n’importe lequel pris en charge par mbstring/iconv) ou supprimer celui dont vous ne vous servez pas. Les jeux de caractères seront affichés dans le même ordre que celui défini ici ; aussi, si vous en utilisez fréquemment quelques-uns, faites-les figurer en début de tableau.
Paramètres du serveur web¶
-
$cfg['OBGzip']
¶ Type: chaîne/booléen Valeur par défaut: 'auto'
Définit s’il faut utiliser la mise en cache des sorties de GZIP pour améliorer les vitesses de transfert 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['TrustedProxies']
¶ Type: array Valeur par défaut: array() Liste les serveurs mandataires et les en-têtes HTTP de confiance pour
$cfg['Servers'][$i]['AllowDeny']['order']
. Cette liste est vide par défaut. Vous devez renseigner des serveurs mandataires de confiance si vous voulez utiliser des règles pour les adresses IP derrière un serveur mandataire.L’exemple suivant spécifie que phpMyAdmin doit faire confiance à un en-tête HTTP_X_FORWARDED_FOR (
X-Forwarded-For
) provenant du serveur mandataire 1.2.3.4 :$cfg['TrustedProxies'] = ['1.2.3.4' => 'HTTP_X_FORWARDED_FOR'];
La directive
$cfg['Servers'][$i]['AllowDeny']['rules']
utilise l’adresse IP du client comme d’habitude.
-
$cfg['GD2Available']
¶ Type: chaîne Valeur par défaut: 'auto'
Spécifie si GD est disponible en version 2 ou supérieure. Si c’est le cas, il peut être utilisé pour les transformations MIME. Les valeurs autorisées sont :
- auto - détecte automatiquement
- yes - les fonctions GD 2 peuvent être utilisées,
- no - les fonctions GD 2 ne peuvent pas être utilisées
-
$cfg['CheckConfigurationPermissions']
¶ Type: booléen Valeur par défaut: true Nous vérifions normalement les permissions sur le fichier de configuration pour nous assurer qu’il n’est pas accessible en écriture pour tout le monde. Cependant, phpMyAdmin pourrait être installé sur un système de fichiers NTFS monté sur un serveur non-Windows, auquel cas les permissions semblent erronées mais elles ne peuvent en fait pas être détectées. Dans ce cas, un administrateur système devrait définir ce paramètre à
FALSE
.
-
$cfg['LinkLengthLimit']
¶ Type: entier Valeur par défaut: 1000 Longueur limite de l”URL dans les liens. Quand la longueur est supérieure à cette limite, le lien est remplacé par un formulaire avec un bouton. Ceci est nécessaire car certains serveurs Web (IIS) ont des problèmes avec les URL longues.
-
$cfg['CSPAllow']
¶ Type: chaîne Valeur par défaut: ''
Chaîne supplémentaire à inclure dans les sources autorisées de script et d’image dans l’en-tête de la politique de sécurité du contenu.
Cela peut être utile lorsque vous souhaitez inclure des fichiers externes de JavaScript dans
config.footer.inc.php
ouconfig.header.inc.php
, ce qui ne serait normalement pas autorisé par la Content Security Policy.Pour permettre certains sites, il suffit de les énumérer à l’intérieur de la chaîne :
$cfg['CSPAllow'] = 'example.com example.net';
Nouveau dans la version 4.0.4.
-
$cfg['DisableMultiTableMaintenance']
¶ Type: booléen Valeur par défaut: false Dans la page Structure de la base de données, il est possible de marquer certaines tables puis de choisir une opération comme l’optimisation de plusieurs tables. Ceci peut ralentir le serveur ; par conséquent, définir ceci à
true
empêche ce type d’opération de maintenance multiple.
Paramètres des thèmes¶
Veuillez modifier directementthemes/themename/scss/_variables.scss
, bien que vos changements seront écrasés lors de la prochaine mise à jour.
Personnalisation du design¶
Type: booléen Valeur par défaut: true Lorsque défini à true, placer le curseur sur un élément dans le panneau de navigation provoque le marquage de cet élément (le fond est mis en surbrillance).
-
$cfg['BrowsePointerEnable']
¶ Type: booléen Valeur par défaut: true Lorsque défini à true, survoler une ligne dans le volet Afficher provoque le marquage de cette ligne (le fond est mis en surbrillance).
-
$cfg['BrowseMarkerEnable']
¶ Type: booléen Valeur par défaut: true Lorsque réglé à la valeur true, une ligne de données est marquée (le fond est mis en surbrillance) lorsque la ligne est sélectionnée avec la case à cocher.
-
$cfg['LimitChars']
¶ Type: entier Valeur par défaut: 50 Nombre maximum de caractères affichés dans un champ non numérique en mode Afficher. Peut être désactivé par un bouton radio dans la page de navigation.
-
$cfg['RowActionLinks']
¶ Type: chaîne Valeur par défaut: 'left'
Définit l’endroit où les liens modifier, copier et effacer seront placés quand le contenu des tables est affiché (vous pouvez les afficher à gauche, à droite, des deux côtés ou nulle part).
-
$cfg['RowActionLinksWithoutUnique']
¶ Type: booléen Valeur par défaut: false Définit si l’on doit afficher les liens relatifs aux lignes (Modifier, Copier, Effacer) et les cases à cocher pour des opérations sur plusieurs lignes, même si la sélection ne comporte pas de unique key. Faire des actions sur des lignes en l’absence d’une clé unique peut faire en sorte que des lignes différentes ou plus de lignes soient affectées puisqu’il n’y a aucun garantie quant à la sélection exacte des lignes.
-
$cfg['RememberSorting']
¶ Type: booléen Valeur par défaut: true Si activé, l’ordre de tri des tables est conservé lors de la navigation dans les tables.
-
$cfg['TablePrimaryKeyOrder']
¶ Type: chaîne Valeur par défaut: 'NONE'
Ceci définit l’ordre de tri par défaut des tables possédant une primary key, lorsqu’il n’y a aucun ordre de tri défini à l’externe. Les valeurs possibles sont : [“NONE”, “ASC”, “DESC”]
-
$cfg['ShowBrowseComments']
¶ Type: booléen Valeur par défaut: true
-
$cfg['ShowPropertyComments']
¶ Type: booléen Valeur par défaut: true 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 affiché en tant qu’info-bulle pour ce champ.
-
$cfg['FirstDayOfCalendar']
¶ Type: entier Valeur par défaut: 0 Ceci définira le premier jour de la semaine dans le calendrier. Le nombre peut être réglé de 0 à 6, ce qui représente les sept jours de la semaine, du dimanche au samedi respectivement. Cette valeur peut également être configurée par l’utilisateur dans le champ Paramètres du serveur -> Fonctionnalités -> Général -> Premier jour du calendrier.
Champs texte¶
-
$cfg['CharEditing']
¶ Type: chaîne Valeur par défaut: 'input'
Définit quels types de contrôles d’édition doivent être utilisés pour les colonnes CHAR et VARCHAR. Cela s’applique à l’édition des données ainsi qu’aux valeurs par défaut dans l’édition de structure. Les valeurs permises sont :
- input - ceci permet de limiter la taille du texte en fonction de la taille des colonnes dans MySQL, mais il y a des problèmes avec les caractères « newline » dans les colonnes
- textarea - aucun problème avec les caractères « newline » dans les colonnes, mais ne permet pas de limitation de taille
-
$cfg['MinSizeForInputField']
¶ Type: entier Valeur par défaut: 4 Définir la taille minimale des champs de saisie générés pour les colonnes CHAR et VARCHAR.
-
$cfg['MaxSizeForInputField']
¶ Type: entier Valeur par défaut: 60 Définir la taille maximale des champs de saisie générés pour les colonnes CHAR et VARCHAR.
-
$cfg['TextareaCols']
¶ Type: entier Valeur par défaut: 40
-
$cfg['TextareaRows']
¶ Type: entier Valeur par défaut: 15
-
$cfg['CharTextareaCols']
¶ Type: entier Valeur par défaut: 40
-
$cfg['CharTextareaRows']
¶ Type: entier Valeur par défaut: 7 Le nombre de colonnes et de lignes pour les zones de text (textareas). 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 la modification de CHAR et VARCHAR (si configurées dans
$cfg['CharEditing']
).Modifié dans la version 5.0.0: La valeur par défaut est passée de 2 à 7.
-
$cfg['LongtextDoubleTextarea']
¶ Type: booléen Valeur par défaut: true Définit si la zone de texte pour les colonnes LONGTEXT doit avoir une taille double.
-
$cfg['TextareaAutoSelect']
¶ Type: booléen Valeur par défaut: false 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['EnableAutocompleteForTablesAndColumns']
¶ Type: booléen Valeur par défaut: true Si vous voulez activer la saisie semi-automatique pour les noms de table et de colonne dans n’importe quelle boîte de requête SQL.
Paramètres de la fenêtre de requête SQL¶
-
$cfg['SQLQuery']['Edit']
¶ Type: booléen Valeur par défaut: true Définit l’affichage d’un lien pour modifier une requête dans toute boîte SQL Query.
-
$cfg['SQLQuery']['Explain']
¶ Type: booléen Valeur par défaut: true Définit l’affichage d’un lien pour expliquer une requête SELECT dans toute boîte SQL Query.
-
$cfg['SQLQuery']['ShowAsPHP']
¶ Type: booléen Valeur par défaut: true Définit l’affichage d’un lien pour incorporer une requête dans du code PHP dans toute boîte SQL Query.
-
$cfg['SQLQuery']['Refresh']
¶ Type: booléen Valeur par défaut: true Définit l’affichage d’un lien pour actualiser une requête dans toute boîte SQL Query.
Les répertoires de transfert/sauvegarde/import du serveur web¶
Si PHP est exécuté en mode sécurisé, tous les répertoires doivent appartenir au même utilisateur que le propriétaire des scripts phpMyAdmin.
Si le répertoire où est installé phpMyAdmin est sujet à une restriction open_basedir
, vous devez créer un répertoire temporaire dans un répertoire accessible par l’interprêteur PHP.
Pour des raisons de sécurité, tous les répertoires doivent être en dehors de l’arbre publié par le serveur Web. Si vous ne pouvez faire autrement, limitez l’accès aux répertoires en utilisant la configuration du serveur Web (par exemple en utilisant des fichiers .htaccess ou web.config) ou placez au moins un fichier index.html
vide ici, de sorte que le parcours de répertoires ne soit pas possible. Cependant, tant que le répertoire est accessible par le serveur Web, un attaquant peut deviner les noms de fichiers pour les télécharger.
-
$cfg['UploadDir']
¶ Type: chaîne Valeur par défaut: ''
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 ou d’une table, puis l’onglet Import.
Si vous voulez un répertoire différent pour chaque utilisateur, %u sera remplacé par le nom d’utilisateur.
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é via HTTP, ou quand les transferts de fichiers sont désactivés dans PHP.
Avertissement
Veuillez consulter le début de ce chapitre (Les répertoires de transfert/sauvegarde/import du serveur web) pour des instructions sur la configuration de ce répertoire et comment le sécuriser.
Voir aussi
Voir 1.16 Je ne peux pas transférer de gros fichiers d’exportation (problèmes de mémoire, HTTP ou de temporisation - timeout). pour des alternatives.
-
$cfg['SaveDir']
¶ Type: chaîne Valeur par défaut: ''
Le nom du répertoire du serveur web où les fichiers exportés peuvent être sauvegardés.
Si vous voulez un répertoire différent pour chaque utilisateur, %u sera remplacé par le nom de l’utilisateur.
Veuillez noter que le répertoire doit être accessible en écriture à l’utilisateur du serveur Web.
Avertissement
Veuillez consulter le début de ce chapitre (Les répertoires de transfert/sauvegarde/import du serveur web) pour des instructions sur la configuration de ce répertoire et comment le sécuriser.
-
$cfg['TempDir']
¶ Type: chaîne Valeur par défaut: './tmp/'
Le nom du répertoire où les fichiers temporaires peuvent être stockés. Il est utilisé pour :
- La cache des templates ce qui accélère le chargement de page.
- Import de fichiers ESRI Shapefiles, voir 6.30 Import : Comment puis-je importer des fichiers ESRI Shapefiles ?.
- Pour contourner les limitations de
open_basedir
pour les fichiers téléchargés, consulter la 1.11 J’obtiens “open_basedir restriction” en téléchargeant un fichier depuis l’onglet d’import..
Ce répertoire devra avoir les permissions les plus strictes possibles car le seul utilisateur à devoir accéder à ce répertoire est celui qui exécute le serveur Web. Si vous avez des privilèges root, rendez simplement cet utilisateur propriétaire de ce répertoire, et ne le rendez accessible que par lui :
chown www-data:www-data tmp chmod 700 tmp
Si vous ne pouvez changer le propriétaire du répertoire, vous pouvez effectuer une configuration similaire en utilisant une ACL :
chmod 700 tmp setfacl -m "g:www-data:rwx" tmp setfacl -d -m "g:www-data:rwx" tmp
Si aucune de ces deux solutions ne fonctionne pour vous, vous pouvez toujours faire un chmod 777 sur le répertoire, mais cela pourrait imposer des risques de sécurité aux autres utilisateurs du système qui lisent et écrivent des données dans ce répertoire.
Avertissement
Veuillez consulter le début de ce chapitre (Les répertoires de transfert/sauvegarde/import du serveur web) pour des instructions sur la configuration de ce répertoire et comment le sécuriser.
Divers paramètres d’affichage¶
-
$cfg['RepeatCells']
¶ Type: entier Valeur par défaut: 100 Répète les en-têtes toutes les X cellules, ou 0 pour désactiver.
-
$cfg['EditInWindow']
¶ Type: booléen Valeur par défaut: true Obsolète depuis la version 4.3.0: Ce paramètre a été supprimé.
-
$cfg['QueryWindowWidth']
¶ Type: entier Valeur par défaut: 550 Obsolète depuis la version 4.3.0: Ce paramètre a été supprimé.
-
$cfg['QueryWindowHeight']
¶ Type: entier Valeur par défaut: 310 Obsolète depuis la version 4.3.0: Ce paramètre a été supprimé.
-
$cfg['QueryHistoryDB']
¶ Type: booléen Valeur par défaut: false
-
$cfg['QueryWindowDefTab']
¶ Type: chaîne Valeur par défaut: 'sql'
Obsolète depuis la version 4.3.0: Ce paramètre a été supprimé.
-
$cfg['QueryHistoryMax']
¶ Type: entier Valeur par défaut: 25 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']
). S’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 à cocher 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 sauvegardées dans l’historique en utilisant$cfg['QueryHistoryMax']
.
Type: booléen Valeur par défaut: true Nouveau dans la version 6.0.0.
Permettre aux utilisateurs de créer des signets qui seront accessibles à tous les autres utilisateurs
-
$cfg['BrowseMIME']
¶ Type: booléen Valeur par défaut: true Activer les Transformations.
-
$cfg['MaxExactCount']
¶ Type: entier Valeur par défaut: 50000 Pour les tables InnoDB, détermine pour quelle taille de tables phpMyAdmin doit obtenir le nombre de lignes exact avec
SELECT COUNT
. Si le nombre approximatif de lignes renvoyé parSHOW TABLE STATUS
est inférieur à cette valeur,SELECT COUNT
sera utilisé, sinon, la valeur approximative sera utilisée.Modifié dans la version 4.8.0: La valeur par défaut a été abaissée à 50000 pour des raisons de performance.
Modifié dans la version 4.2.6: La valeur par défaut a été changée à 500000.
-
$cfg['MaxExactCountViews']
¶ Type: entier Valeur par défaut: 0 Pour les vues, puisqu’obtenir le compte exact pourrait avoir un impact sur les performances, cette valeur est la valeur maximum à afficher, en utilisant un
SELECT COUNT … LIMIT
. Mettre cette valeur à 0 passe outre tout comptage de lignes.
-
$cfg['NaturalOrder']
¶ Type: booléen Valeur par défaut: true Trie les noms des bases de données et des tables en ordre naturel (par exemple, t1, t2, t10). Actuellement mis en œuvre dans le panneau de navigation et dans la vue Base de données, pour la liste des tables.
-
$cfg['InitialSlidersState']
¶ Type: chaîne Valeur par défaut: 'closed'
Si défini à
'closed'
, les cases de défilement sont initialement dans un état fermé. Une valeur'open'
fait le contraire. Pour désactiver complètement toutes les cases de défilement visuel, utiliser'disabled'
.
-
$cfg['UserprefsDisallow']
¶ Type: array Valeur par défaut: array() Contains names of configuration options (keys in
$cfg
array) that users can’t set through user preferences. For possible values, refer to classes undersrc/Config/Forms/User/
.
-
$cfg['UserprefsDeveloperTab']
¶ Type: booléen Valeur par défaut: false Nouveau dans la version 3.4.0.
Active dans les préférences utilisateur un onglet contenant les options pour les développeurs de phpMyAdmin.
Titres de page¶
Le titre de la page affiché par la barre de titre de la fenêtre ou de l’onglet de votre navigateur peut être personnalisé. Vous pouvez utiliser 6.27 Quels formats de chaînes puis-je utiliser ?. Les quatre options suivantes permettent de personnaliser diverses parties de l’interface de phpMyAdmin. Notez que le titre de la page de connexion ne peut pas être modifié.
-
$cfg['TitleTable']
¶ Type: chaîne Valeur par défaut: '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'
-
$cfg['TitleDatabase']
¶ Type: chaîne Valeur par défaut: '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'
-
$cfg['TitleServer']
¶ Type: chaîne Valeur par défaut: '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'
-
$cfg['TitleDefault']
¶ Type: chaîne Valeur par défaut: '@HTTP_HOST@ | @PHPMYADMIN@'
Paramètres du gestionnaire de thèmes¶
-
$cfg['ThemeManager']
¶ Type: booléen Valeur par défaut: true Active les thèmes sélectionnables par l’utilisateur. Voir 2.7 Utiliser et créer des thèmes.
-
$cfg['ThemeDefault']
¶ Type: chaîne Valeur par défaut: 'pmahome'
Le thème par défaut (un sous-répertoire de
./public/themes/
).
-
$cfg['ThemePerServer']
¶ Type: booléen Valeur par défaut: false Autorise ou non un thème différent pour chaque serveur.
-
$cfg['FontSize']
¶ Type: chaîne Valeur par défaut: “82%” Obsolète depuis la version 5.0.0: Ce réglage a été retiré car le navigateur est plus efficace, et donc il n’y a pas besoin de cette option.
Taille de la police à utilisé, est utilisée dans le CSS.
Requêtes par défaut¶
-
$cfg['DefaultQueryTable']
¶ Type: chaîne Valeur par défaut: 'SELECT * FROM @TABLE@ WHERE 1'
-
$cfg['DefaultQueryDatabase']
¶ Type: chaîne Valeur par défaut: ''
Requêtes par défaut qui seront affichées dans les boîtes de requête quand l’utilisateur ne spécifie rien. Vous pouvez utiliser 6.27 Quels formats de chaînes puis-je utiliser ?.
Paramètres MySQL¶
-
$cfg['DefaultFunctions']
¶ Type: array Valeur par défaut: array('FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'NOW')
Fonctions sélectionnées par défaut pour insérer/modifier un enregistrement. Les fonctions sont définies pour les méta-types comme (
FUNC_NUMBER
,FUNC_DATE
,FUNC_CHAR
,FUNC_SPATIAL
,FUNC_UUID
) et pourfirst_timestamp
, qui est utilisé pour la première colonne d’horodatage dans une table.Exemple de configuration
$cfg['DefaultFunctions'] = [ 'FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'ST_GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'UTC_TIMESTAMP', ];
Options par défaut pour les transformations¶
-
$cfg['DefaultTransformations']
¶ Type: array Valeur par défaut: Un tableau avec les clés-valeurs listées ci-dessous
-
$cfg['DefaultTransformations']['Substring']
¶ Type: array Valeur par défaut: array(0, “tout”, “…”)
-
$cfg['DefaultTransformations']['Bool2Text']
¶ Type: array Valeur par défaut: array(“T”, “F”)
-
$cfg['DefaultTransformations']['External']
¶ Type: array Valeur par défaut: array(0, “-f /dev/null -i -wrap -q”, 1, 1)
-
$cfg['DefaultTransformations']['PreApPend']
¶ Type: array Valeur par défaut: array(“”, “”)
-
$cfg['DefaultTransformations']['Hex']
¶ Type: array Valeur par défaut: array(“2”)
-
$cfg['DefaultTransformations']['DateFormat']
¶ Type: array Valeur par défaut: array(0, “”, “local”)
-
$cfg['DefaultTransformations']['Inline']
¶ Type: array Valeur par défaut: array(“100”, 100)
-
$cfg['DefaultTransformations']['TextImageLink']
¶ Type: array Valeur par défaut: array(“”, 100, 50)
-
$cfg['DefaultTransformations']['TextLink']
¶ Type: array Valeur par défaut: array(“”, “”, “”)
Paramètres de la console¶
Note
Ces réglages sont principalement à modifier par l’utilisateur.
-
$cfg['Console']['StartHistory']
¶ Type: booléen Valeur par défaut: false Afficher l’historique des requêtes au démarrage
-
$cfg['Console']['AlwaysExpand']
¶ Type: booléen Valeur par défaut: false Toujours développer les messages
-
$cfg['Console']['CurrentQuery']
¶ Type: booléen Valeur par défaut: true Afficher la requête de navigation courante
-
$cfg['Console']['EnterExecutes']
¶ Type: booléen Valeur par défaut: false Exécuter les requêtes avec Entrée et insérer une nouvelle ligne avec Maj+Entrée
-
$cfg['Console']['DarkTheme']
¶ Type: booléen Valeur par défaut: false Passer au thème sombre
-
$cfg['Console']['Mode']
¶ Type: chaîne Valeur par défaut: « infos » Mode console de requêtes SQL
-
$cfg['Console']['Height']
¶ Type: entier Valeur par défaut: 92 Hauteur de la console de requêtes SQL
Développeur¶
Avertissement
Ces paramètres peuvent avoir un effet énorme sur les performances ou la sécurité.
-
$cfg['environment']
¶ Type: chaîne Valeur par défaut: 'production'
Paramètre l’environnement de travail.
Cela ne doit être modifié que lorsque vous développez phpMyAdmin lui-même. Le mode « développement » peut afficher des informations de débogage à certains endroits.
Les valeurs possibles sont « production » ou « development ».
-
$cfg['DBG']
¶ Type: array Valeur par défaut: []
-
$cfg['DBG']['sql']
¶ Type: booléen Valeur par défaut: false Active la journalisation des requêtes et des temps d’exécution qui sont alors affichés dans la console de l’onglet Debug SQL.
-
$cfg['DBG']['sqllog']
¶ Type: booléen Valeur par défaut: false Active la journalisation des requêtes et des temps d’exécution dans syslog. Nécessite que
$cfg['DBG']['sql']
soit activé.
-
$cfg['DBG']['demo']
¶ Type: booléen Valeur par défaut: false Activer pour permettre au serveur de se présenter comme un serveur de démonstration. Ceci est utilisé pour le serveur de démonstration phpMyAdmin.
Actuellement, il modifie le comportement suivant :
- Il y a un message d’accueil sur la page principale.
- Il y a des informations en bas de la page à propos du serveur de démo et de la révision de Git utilisée.
- Le script d’installation est activé même pour une configuration existante.
- L’installation n’essaie pas de se connecter au serveur MySQL.
-
$cfg['DBG']['simple2fa']
¶ Type: booléen Valeur par défaut: false Peut être utilisé pour tester l’authentification à deux facteurs avec Authentification simple à deux facteurs.
Exemple¶
Consulter les parties de configuration suivantes pour les configurations typiques de phpMyAdmin.
Exemple de base¶
Exemple de fichier de configuration qui peut être copié dans config.inc.php
pour obtenir une configuration de base pour le rendu. Il est distribué avec phpMyAdmin sous le nom config.sample.inc.php
. Veuillez noter qu’il ne contient pas toutes les options de configuration, seulement les plus fréquemment utilisées.
<?php
/**
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use setup/
*
* All directives are explained in documentation in the doc/ folder
* or at <https://docs.phpmyadmin.net/>.
*/
declare(strict_types=1);
/**
* This is needed for cookie based authentication to encrypt the cookie.
* Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
/**
* End of servers configuration
*/
/**
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
/**
* Whether to display icons or text or both icons and text in table row
* action segment. Value can be either of 'icons', 'text' or 'both'.
* default = 'both'
*/
//$cfg['RowActionType'] = 'icons';
/**
* Defines whether a user should be displayed a "show all (records)"
* button in browse mode or not.
* default = false
*/
//$cfg['ShowAll'] = true;
/**
* Number of rows displayed when browsing a result set. If the result
* set contains more rows, "Previous" and "Next".
* Possible values: 25, 50, 100, 250, 500
* default = 25
*/
//$cfg['MaxRows'] = 50;
/**
* Disallow editing of binary fields
* valid values are:
* false allow editing
* 'blob' allow editing except for BLOB fields
* 'noblob' disallow editing except for BLOB fields
* 'all' disallow editing
* default = 'blob'
*/
//$cfg['ProtectBinary'] = false;
/**
* Default language to use, if not browser-defined or user-defined
* (you find all languages in the locale folder)
* uncomment the desired line:
* default = 'en'
*/
//$cfg['DefaultLang'] = 'en';
//$cfg['DefaultLang'] = 'de';
/**
* How many columns should be used for table display of a database?
* (a value larger than 1 results in some information being hidden)
* default = 1
*/
//$cfg['PropertiesNumColumns'] = 2;
/**
* Set to true if you want DB-based query history.If false, this utilizes
* JS-routines to display query history (lost by window close)
*
* This requires configuration storage enabled, see above.
* default = false
*/
//$cfg['QueryHistoryDB'] = true;
/**
* When using DB-based query history, how many entries should be kept?
* default = 25
*/
//$cfg['QueryHistoryMax'] = 100;
/**
* Whether or not to query the user before sending the error report to
* the phpMyAdmin team when a JavaScript error occurs
*
* Available options
* ('ask' | 'always' | 'never')
* default = 'ask'
*/
//$cfg['SendErrorReports'] = 'always';
/**
* 'URLQueryEncryption' defines whether phpMyAdmin will encrypt sensitive data from the URL query string.
* 'URLQueryEncryptionSecretKey' is a 32 bytes long secret key used to encrypt/decrypt the URL query string.
*/
//$cfg['URLQueryEncryption'] = true;
//$cfg['URLQueryEncryptionSecretKey'] = '';
/**
* You can find more configuration options in the documentation
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
*/
Avertissement
N’utilisez pas l’utilisateur de contrôle “pma” s’il n’existe pas encore et n’utilisez pas “pmapass” comme mot de passe.
Exemple pour l’authentification “signon”¶
Cet exemple utilise examples/signon.php
pour montrer un exemple de l’utilisation de Mode d’authentification “signon” :
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'signon';
$cfg['Servers'][$i]['SignonSession'] = 'SignonSession';
$cfg['Servers'][$i]['SignonURL'] = 'examples/signon.php';
Exemple de limitation de l’adresse IP pour la connexion automatique¶
Si vous voulez vous connecter automatiquement pour accéder à phpMyAdmin localement, et avec la demande d’un mot de passe pour l’accès à distance, vous pouvez utiliser le bout de code suivant :
if ($_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'yourpassword';
} else {
$cfg['Servers'][$i]['auth_type'] = 'cookie';
}
Note
Le filtrage basé sur les adresses IP n’est pas fiable sur Internet. Ne l’utiliser que pour les adresses locales.
Exemple pour l’utilisation de plusieurs serveurs MySQL¶
Vous pouvez configurer plusieurs serveurs en utilisant $cfg['Servers']
, l’exemple suivant en propose deux :
<?php
// The string is a hexadecimal representation of a 32-bytes long string of random bytes.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
$i = 0;
$i++; // server 1 :
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'no1';
$cfg['Servers'][$i]['host'] = 'localhost';
// more options for #1 ...
$i++; // server 2 :
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'no2';
$cfg['Servers'][$i]['host'] = 'remote.host.addr';//or ip:'10.9.8.1'
// this server must allow remote clients, e.g., host 10.9.8.%
// not only in mysql.host but also in the startup configuration
// more options for #2 ...
// end of server sections
$cfg['ServerDefault'] = 0; // to choose the server on startup
// further general options ...
Google Cloud SQL avec SSL¶
Pour se connecter à Google Cloud SQL, vous devez désactiver la vérification de certificat. Ceci survient quant le CN du certificat correspond au nom de votre instance mais que vous vous connectez en utilisant l’adresse IP et PHP essaie de faire correspondre les deux. Quand la vérification est activée, vous obtenez un message d’erreur du type :
Peer certificate CN=`api-project-851612429544:pmatest' did not match expected CN=`8.8.8.8'
Avertissement
En désactivant la vérification, votre trafic est chiffré mais vous êtes vulnérable aux attaque de type « man in the middle ».
Pour connecter phpMyAdmin à Google Cloud SQL en utilisant SSL, télécharger les certificats client et serveur et indiquer à phpMyAdmin de les utiliser :
// IP address of your instance
$cfg['Servers'][$i]['host'] = '8.8.8.8';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// Client secret key
$cfg['Servers'][$i]['ssl_key'] = '../client-key.pem';
// Client certificate
$cfg['Servers'][$i]['ssl_cert'] = '../client-cert.pem';
// Server certification authority
$cfg['Servers'][$i]['ssl_ca'] = '../server-ca.pem';
// Disable SSL verification (see above note)
$cfg['Servers'][$i]['ssl_verify'] = false;
Amazon RDS Aurora avec SSL¶
Pour connecter phpMyAdmin à une instance Amazon RDS Aurora MySQL en utilisant SSL, télécharger les certificats client et serveur et indiquer à phpMyAdmin de les utiliser :
// Address of your instance
$cfg['Servers'][$i]['host'] = 'replace-me-cluster-name.cluster-replace-me-id.replace-me-region.rds.amazonaws.com';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// You need to have the region CA file and the authority CA file (2019 edition CA for example) in the PEM bundle for it to work
$cfg['Servers'][$i]['ssl_ca'] = '../rds-combined-ca-bundle.pem';
// Enable SSL verification
$cfg['Servers'][$i]['ssl_verify'] = true;
Voir aussi
Utilisation de SSL pour la connexion au serveur de base de données,
$cfg['Servers'][$i]['ssl']
,
$cfg['Servers'][$i]['ssl_ca']
,
$cfg['Servers'][$i]['ssl_verify']
Voir aussi
- Dernier groupe de certificats RDS CA pour toutes les régions https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
- L’autorité de certification RDS (édition 2019) pour la région eu-west-3 sans l’autorité de certification parente https://s3.amazonaws.com/rds-downloads/rds-ca-2019-eu-west-3.pem
- “Liste des fichiers Amazon RDS CA disponibles <https://s3.amazonaws.com/rds-downloads/>”_
- “Guide de sécurité Amazon MySQL Aurora <https://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Security.html>”_
- Groupes de certificats Amazon par région
reCaptcha utilisant hCaptcha¶
$cfg['CaptchaApi'] = 'https://www.hcaptcha.com/1/api.js';
$cfg['CaptchaCsp'] = 'https://hcaptcha.com https://*.hcaptcha.com';
$cfg['CaptchaRequestParam'] = 'h-captcha';
$cfg['CaptchaResponseParam'] = 'h-captcha-response';
$cfg['CaptchaSiteVerifyURL'] = 'https://hcaptcha.com/siteverify';
// This is the secret key from hCaptcha dashboard
$cfg['CaptchaLoginPrivateKey'] = '0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// This is the site key from hCaptcha dashboard
$cfg['CaptchaLoginPublicKey'] = 'xxx-xxx-xxx-xxx-xxxx';
Voir aussi
Voir aussi
reCaptcha en utilisant Turnstile¶
$cfg['CaptchaMethod'] = 'checkbox';
$cfg['CaptchaApi'] = 'https://challenges.cloudflare.com/turnstile/v0/api.js';
$cfg['CaptchaCsp'] = 'https://challenges.cloudflare.com https://static.cloudflareinsights.com';
$cfg['CaptchaRequestParam'] = 'cf-turnstile';
$cfg['CaptchaResponseParam'] = 'cf-turnstile-response';
$cfg['CaptchaLoginPublicKey'] = '0xxxxxxxxxxxxxxxxxxxxxx';
$cfg['CaptchaLoginPrivateKey'] = '0x4AAAAAAAA_xx_xxxxxxxxxxxxxxxxxxxx';
$cfg['CaptchaSiteVerifyURL'] = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
Voir aussi
Voir aussi
reCaptcha utilisant Google reCaptcha v2/v3¶
$cfg['CaptchaLoginPublicKey'] = 'xxxxxxxxxxxxxxxx-xxxxxxxxxxxx';
$cfg['CaptchaLoginPrivateKey'] = 'xxxxxxxxx-xxxxxxxxxxxxxx';
// Remove it if you dot not want the checkbox mode
$cfg['CaptchaMethod'] = 'checkbox';
Voir aussi
Voir aussi
Guide utilisateur¶
Configurer phpMyAdmin¶
Il y a plusieurs paramètres de configuration qui peuvent être utilisés pour personnaliser l’interface. Ces paramètres sont décrits dans Configuration. Il existe plusieurs niveaux de configuration.
Les paramètres globaux peuvent être configurés dans config.inc.php
comme décrit dans Configuration. C’est la seule façon de configurer les connexions aux bases de données et d’autres paramètres système globaux.
En plus de ça, il y a des paramètres utilisateur qui peuvent être stockés de manière persistante dans Stockage de la configuration de phpMyAdmin, et possiblement configurés automatiquement par Zéro configuration. Si les Stockage de la configuration de phpMyAdmin ne sont pas configurées, les paramètres sont stockés temporairement en données de session étant valables seulement jusqu’à votre déconnexion.
La configuration utilisateur peut être enregistrée pour réutilisation ultérieure, soit en la téléchargeant en fichier soit dans le stockage local du navigateur. Ces deux options sont accessibles dans l’onglet Paramètres. Les paramètres en stockage local du navigateur seront automatiquement chargés lors de la connexion à phpMyAdmin.
Authentification à deux facteurs¶
Nouveau dans la version 4.8.0.
Depuis phpMyAdmin 4.8.0, il est possible de configurer l’authentification à deux facteurs pour s’identifier. Pour l’utiliser, il faut d’abord configurer les Stockage de la configuration de phpMyAdmin. Une fois fait, chaque utilisateur pourra activer le second facteur d’authentification dans les Paramètres.
Lorsque vous exécutez phpMyAdmin à partir du répertoire source Git, les dépendances doivent être installées manuellement ; la façon habituelle de le faire est avec la commande :
composer require pragmarx/google2fa-qrcode bacon/bacon-qr-code
Ou en utilisant un jeton de sécurité matériel avec FIDO U2F :
composer require code-lts/u2f-php-server
Application d’authentification (2FA)¶
L’utilisation d’une application pour s’authentifier est une approche assez commune basée sur HOTP et TOTP. L’idée est de transmettre une clé privée depuis phpMyAdmin vers l’application d’authentification, laquelle sera mesure de générer un code à usage unique basé sur cette clé. La façon la plus simple d’entrer la clé de l’application depuis phpMyAdmin est de scanner un code QR.
Il existe des dizaines d’applications disponibles sur mobile qui implémentent ces standards, les plus connues étant :
Clé de sécurité matérielle (FIDO U2F)¶
L’utilisation de jetons matériels est considérée plus sécurisée qu’une solution logicielle. phpMyAdmin prend en charge les jetons FIDO U2F.
Il existe plusieurs fabricants pour ces jetons, par exemple :
Authentification simple à deux facteurs¶
Cette authentification n’est inclue que pour test et démonstration seuls puisqu’elle ne fournit pas vraiment d’authentification à deux facteurs du fait qu’elle demande à l’utilisateur de confirmer son identification en cliquant sur le bouton.
Elle ne devrait pas être utilisé en production et est désactivé à moins que $cfg['DBG']['simple2fa']
ne soit défini.
Transformations¶
Note
Vous devez avoir configuré Stockage de la configuration de phpMyAdmin pour utiliser la fonctionnalité de transformations.
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.
phpMyAdmin propose deux types de transformations : les transformations d’affichage du navigateur, qui n’affectent que l’affichage des données lors de la navigation dans phpMyAdmin, et les transformations d’entrée, qui affectent une valeur avant son insertion dans phpMyAdmin. Vous pouvez appliquer différentes transformations au contenu de chaque colonne. Chaque transformation dispose d’options permettant de définir comment elle affectera les données stockées.
Imaginons que vous ayez une colonne nom_de_fichier
qui contient un nom de fichier. Normalement, vous ne verriez dans phpMyAdmin que ce nom de fichier. En utilisant l’affichage des 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 avoir un aperçu général de toutes les transformations disponibles et de leurs options, vous pouvez soit cliquer sur le lien « Modifier » pour une colonne existante, soit créer une nouvelle colonne à partir de la boîte de dialogue. Dans les deux cas, il y a un lien sur la page de structure de la colonne pour « Transformation d’affichage » et « Transformation de saisie » qui vous donnera plus d’informations sur chaque transformation disponible sur votre système.
Pour un tutoriel sur la façon d’utiliser efficacement les transformations, voir notre section Liens sur la page d’accueil officielle de phpMyAdmin.
Utilisation¶
Consultez la page de structure de table (atteindre la page en cliquant le lien “Structure” d’une table). Cliquez alors sur « Modifier » (ou l’icône Modifier) et vous verrez alors trois nouveaux champs à la fin de la ligne : “Media type”, “Transformation” et “Options de transformation”.
- Le champ “Media type” est un champ déroulant. Sélectionnez le Media type qui correspond au contenu de la colonne. Veuillez noter que beaucoup des transformations sont inactives jusqu’à ce que Media type ne soit sélectionné.
- Le champ “Browser display transformation” est un champ à liste déroulante. Vous pouvez choisir à partir d’une liste grandissant sans cesse de transformations prédéfinies. Voir ci-dessous pour des informations sur la manière de construire vos propres transformations. Il existe des transformations globales et des transformations liées aux types MIME. Les transformations globales peuvent être utilisées pour tous les types MIME. Elles prendront si nécessaire le type MIME en considération. Les transformations liées au type MIME n’opèrent habituellement que sur un certain type MIME. Il existe des transformations qui opèrent sur le type MIME principal (comme “image”), et qui prendront très vraisemblablement en compte le sous-type, et celles qui n’opèrent que sur un sous-type spécifique (comme “image/jpeg”). Vous pouvez utiliser les transformations sur les types MIME pour lesquels la fonction n’a pas été prévue. Il n’y a pas de vérification pour s’assurer que vous avez choisi la bonne transformation, aussi, assurez-vous du résultat du traitement.
- Le champ « Options de transformation de l’affichage du navigateur » est un champ de texte libre. Il vous faut saisir ici des options spécifiques de fonction de transformation. Habituellement, les transformations peuvent opérer avec les options par défaut, mais c’est généralement une bonne idée de jeter un œil à la vue générale pour voir quelles options sont nécessaires. Comme pour les champs ENUM/SET, il vous faut séparer plusieurs options en utilisant le format “a”,”b”,”c”,… (NOTEZ L’ABSENCE D’ESPACES). La raison est que les options seront analysées en interne comme un tableau, la première valeur étant vue comme le premier élément du tableau, et ainsi de suite. Pour spécifier un jeu de caractères MIME, il vous est possible de le définir dans transformation_options. Il vous faut mettre cela en dehors des options prédéfinies d’une transformation mime spécifique, en tant que dernière valeur de l’ensemble. Utiliser le format « “; charset=XXX” ». En cas d’utilisation d’une transformation pour laquelle il est possible de spécifier deux options et pour y ajouter un jeu de caractères, saisir « “premier paramètre”,”second paramètre”,”charset=us-ascii” ». Il est toutefois possible d’utiliser les paramètres par défaut : « ””,””,”charset =us-ascii” ». Les options par défaut peuvent être configurées en utilisant
$cfg['DefaultTransformations']
. - La « Transformation de saisie » est un autre menu déroulant qui correspond exactement aux instructions ci-dessus pour la « Transformation d’affichage », sauf que ces transformations affectent les données avant leur insertion dans la base de données. Elles sont le plus souvent utilisées pour fournir un éditeur spécialisé (par exemple, en utilisant l’interface de l’éditeur SQL de phpMyAdmin) ou un sélecteur (comme pour le téléchargement d’une image). Il est également possible de manipuler les données, par exemple en convertissant une adresse IPv4 en binaire ou en l’analysant au moyen d’une expression régulière.
- Enfin, la section « Options de transformation de saisie » est l’équivalent de la section « Options de transformation d’affichage » ci-dessus et c’est là que les paramètres facultatifs et obligatoires sont saisis.
Structure de fichier¶
All specific transformations for mimetypes are defined through class
files in the directory src/Plugins/Transformations/
. Each of
them extends a certain transformation abstract class declared in
src/Plugins/Transformations/Abs
.
Ils sont stockés dans des fichiers pour faciliter la personnalisation et permettre l’ajout facile de transformations nouvelles ou personnalisées.
Parce que l’utilisateur ne peut pas mettre ses propres types mime, on garde l’assurance que les transformations fonctionneront toujours. Cela n’a pas de sens d’appliquer une transformation à un type mime, que la fonction de transformation ne sait pas manipuler.
There is a file called src/Plugins/Transformations.php
that provides some
basic functions which can be included by any other transform function.
La convention de nommage de fichier est [Mimetype]_[Subtype]_[Transformation Name].php
, alors que la classe abstraite qui l’étend prend le nom [Transformation Name]TransformationsPlugin
. Toutes les méthodes qui doivent être implémentées par un plugin de transformation sont :
- getMIMEType() et getMIMESubtype() dans la classe principale ;
- getName(), getInfo() et applyTransformation() dans la classe abstraite qui l’étend.
Les méthodes getMIMEType(), getMIMESubtype() et getName() renvoient le nom du type MIME, les sous-type MIME et la transformation respectivement. getInfo() renvoie la description de la transformation et les options éventuelles qu’il peut recevoir et applyTransformation() est la méthode qui effectue en fait le travail de transformation du plugin.
Please see the src/Plugins/Transformations/TEMPLATE
and
src/Plugins/Transformations/TEMPLATE_ABSTRACT
files for adding
your own transformation plug-in. You can also generate a new
transformation plug-in (with or without the abstract transformation
class), by using
scripts/transformations_generator_plugin.sh
or
scripts/transformations_generator_main_class.sh
.
La méthode applyTransformation() prend toujours 3 variables :
- $buffer - Contient le texte dans la colonne. C’est le texte à transformer.
- $options - Contient n’importe quelle option utilisateur vers une fonction transform en tableau.
- $meta - Contient un objet avec des informations sur la colonne. Les données sont acquises à partir de la sortie de la fonction mysql_fetch_field(). Cela signifie que toutes les propriétés d’objet décrites sur la page du manuel sont disponibles dans cette variable et peuvent être utilisées pour transformer une colonne selon les propriétés unsigned/zerofill/not_null/…. La variable $meta->mimetype contient le Media type d’origine de la colonne (i.e. “text/plain”, “image/jpeg” etc.)
Signets¶
Note
Vous devez avoir configuré Stockage de la configuration de phpMyAdmin pour utiliser la fonctionnalité de signets.
Stockage des signets¶
Chaque requête exécutée peut être marquée comme signet sur la page où les résultats sont affichés. Un bouton nommé Conserver cette requête SQL dans les signets est affiché en bas de la page. Dès qu’un signet est stocké, cette requête est liée à la base de données Il est maintenant possible d’avoir accès à une liste déroulante de signets sur chacune des pages sur lesquelles la boîte de requête apparaît pour cette base de données.
Variables dans les signets¶
A l’intérieur d’une requête, vous pouvez aussi ajouter des espaces réservés pour des variables. Ceci est effectué en insérant dans la requête un commentaire SQL entre /*
et */
. La chaîne spéciale [VARIABLE{variable-number}]
est utilisée à l’intérieur des commentaires. Gardez à l’esprit que toute la requête, moins le commentaire, doit être valide, sans quoi vous ne pourrez pas la stocker comme un signet. Veuillez noter également que le texte “VARIABLE” est sensible à la casse.
Quand vous exécutez un signet, tout ce qui est saisi dans les boîtes de variables sur la page de requête remplacera la chaîne /*[VARIABLE{variable-number}]*/
dans votre requête stockée.
Rappelez-vous également que tout ce qui se trouve à l’intérieur de la chaîne /*[VARIABLE{variable-number}]*/
pour votre requête restera en l’état, mais sera débarrassé des caractères /**/
. Donc vous pouvez utiliser :
/*, [VARIABLE1] AS myname */
qui sera reproduit en
, VARIABLE1 as myname
dans votre requête, où VARIABLE1 est la chaîne que vous avez saisie dans la boîte de saisie relative à la variable 1.
Un exemple plus complexe, disons que vous avez stocké cette requête :
SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE1]%' */
Si vous souhaitez saisir « 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%'
REMARQUEZ L’ABSENCE D’ESPACES à 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 “” ».
Parcourir une table en utilisant un signet¶
Quand un signet a le même nom qu’une table, il sera utilisé comme une requête lors du parcours de la table.
Gestion des utilisateurs¶
La gestion des utilisateurs est le processus contrôlant les utilisateurs autorisés à se connecter au serveur MySQL et définissant les permissions d’accès sur chaque base de données. phpMyAdmin ne gère pas les utilisateurs : il passe le nom et le mot de passe utilisateur à MySQL, qui détermine alors si un utilisateur est autorisé à réaliser une action particulière. Dans phpMyAdmin, les administrateurs ont tous les droits pour créer, voir et éditer les privilèges ou supprimer les utilisateurs.
Dans phpMyAdmin, la gestion des utilisateurs est contrôlée par l’onglet Utilisateurs sur la page principale. Les utilisateurs peuvent être créés, modifiés et supprimés.
Création d’un nouvel utilisateur¶
Pour créer un nouvel utilisateur, cliquer sur le lien Ajouter un nouveau compte utilisateur en bas de la page Comptes utilisateurs (il faut être un « super utilisateur », par exemple « root »). Utiliser les boîtes de texte et les listes déroulantes pour configurer l’utilisateur selon les besoins. Il sera alors possible de choisir s’il faut créer une base de données pour cet utilisateur et accorder des privilèges globaux spécifiques. Une fois créé (en cliquant sur « Go »), les permissions de l’utilisateur pourront être définie pour une base de données spécifique (ne pas accorder pas de privilèges globaux dans ce cas). En général, les utilisateurs n’ont pas besoin de privilèges globaux (autre que USAGE), seulement des permissions sur leur base de données spécifique.
Modification d’un utilisateur existant¶
Pour modifier un utilisateur existant, cliquer sur l’icône représentant un crayon à droite de l’utilisateur dans la page Comptes utilisateurs. Il est possible de modifier ses privilèges globaux ou spécifiques à une base de données, modifier son mot de passe ou copier ses privilèges vers un nouvel utilisateur.
Suppression d’un utilisateur¶
Dans la page Comptes utilisateurs, cocher la case de l’utilisateur à supprimer, choisir ou non de supprimer les bases de données du même nom (s’il en existe) et cliquer sur « Go ».
Affectation de privilèges à un utilisateur pour une base de données spécifique¶
Les utilisateurs sont assignés à des bases de données en éditant l’enregistrement utilisateur (à partir du lien Comptes utilisateurs de la page d’accueil). Si un utilisateur est spécifiquement créé pour une table donnée, il faudra d’abord le créer (sans privilège global) puis revenir éditer cet utilisateur pour ajouter la table et les privilèges pour la table individuelle.
Relations¶
phpMyAdmin permet des relations (similaires aux clés étrangères) en utilisant les méthodes natives de MySQL (InnoDB) quand c’est possible, sinon avec les fonctions spéciales de phpMyAdmin quand nécessaire. Il existe deux façons d’éditer ces relations, avec la Vue relationnelle et avec le Concepteur par glissé-déposé. Elles sont expliquées sur cette page.
Note
Il faut avoir configuré les Stockage de la configuration de phpMyAdmin pour utiliser les relations seules de phpMyAdmin.
Infos techniques¶
Actuellement le seul type de table MySQL prenant en charge les relations est InnoDB. Avec une table InnoDB, phpMyAdmin va créer de véritables relations InnoDB qui seront imposées par MySQL quelque soit l’application accédant à la base de données. Dans tous les autres cas de tables, phpMyAdmin imposera les relations de manière interne, ces relations ne s’appliquant pas aux autres applications.
Vue relationnelle¶
Pour que cela fonctionne, il faut d’abord correctement créer [[pmadb|pmadb]]. Une fois fait, sélectionner une page de « Structure » de table. Sous la définition de table, un lien nommé « Vue relationnelle » est affiché . En cliquant sur ce lien, la page affichée offrira la possibilité de créer un lien vers une autre table pour n’importe quel champ (la plupart). Seules les CLÉS PRIMAIRES y sont affichées, ce qui fait que si le champ relié n’est pas affiché, c’est que quelque chose ne va pas. Le menu déroulant en bas est le champ qui va être utilisé comme le nom pour un enregistrement.
Exemple de vue relationnelle¶


Admettons qu’il y ait des catégories et des liens, et qu’une catégorie puisse contenir plusieurs liens. La structure de la table devrait ressembler à :
- category.category_id (doit être unique)
- category.name
- link.link_id
- link.category_id
- link.uri.
Ouvrir la page de vue relationnelle (sous la structure de table) pour la table link et pour le champ category_id, en sélectionnant category.category_id comme enregistrement maître.
En suivant le lien de table, le champ category_id sera un hyperlien cliquable vers l’enregistrement de catégorie correct. Mais tout ce qui est affiché est seulement category_id, pas le nom de la catégorie.

Pour corriger cela, ouvrir la vue relationnelle de la table category et dans le menu déroulant en bas, sélectionner « nom ». En suivant de nouveau le lien de table et en passant la souris sur l’hyperlien category_id, la valeur de la catégorie reliée sera maintenant affichée contextuellement.

Concepteur¶
La fonctionnalité Concepteur est une façon graphique de créer, éditer et afficher les relations de phpMyAdmin. Ces relations sont compatibles avec celles créées dans la vue relationnelle de phpMyAdmin.
Pour utiliser cette fonctionnalité, il faut que Stockage de la configuration de phpMyAdmin et $cfg['Servers'][$i]['table_coords']
soit correctement configurés.
Pour utiliser le Concepteur, sélectionner une page de structure de base de données et chercher l’onglet Concepteur.
Pour exporter la vue en PDF, il faut d’abord créer les pages PDF. Le Concepteur crée l’agencement, c’est à dire comment les pages devraient être affichées. Pour finalement exporter la vue, il faut la créer avec une page et sélectionner un agencement créé avec le Concepteur.
Tableaux¶
Nouveau dans la version 3.4.0.
Depuis phpMyAdmin version 3.4.0, il est possible de générer facilement des graphique à partir d’une requêtre SQL en cliquant sur le lien « Afficher un graphique » dans la zone des « Opérations sur les résultats de requête ».

Une fenêtre « Afficher un graphique » est affichée dans laquelle il est possible de personnaliser le graphique avec les options suivantes.
- Type de graphique : permet de choisir le type de graphique parmi les graphiques en barres, en colonnes, en ligne, en courbe, en aires, en camembert et en série temporelle (seuls les graphiques applicables pour la sélection courante de séries sont affichés).
- Axe des X : permet de choisir le champ pour l’axe principal.
- Séries (axe des Y) : permet de choisir les séries pour le graphique. Plusieurs peuvent être choisies.
- Titre : permet de spécifier un titre qui sera affiché au-dessus du graphique.
- Libellés des axes X et Y : permet de spécifier les libellés des axes.
- Rangée de début et un nombre de rangées : permet de générer des graphiques seulement pour le nombre de rangées spécifié de l’ensemble des résultats.

Implémentation des graphiques¶
Les graphiques de phpMyAdmin sont dessinés avec la bibliothèque jQuery jqPlot.
Exemple¶
Graphique en camembert¶
Les résultats de requête pour un simple graphique en camembert peuvent être générés avec :
SELECT 'Food' AS 'expense',
1250 AS 'amount' UNION
SELECT 'Accommodation', 500 UNION
SELECT 'Travel', 720 UNION
SELECT 'Misc', 220
Le résultat de cette requête est :
dépense | nombre |
---|---|
Aliment | 1250 |
Hébergement | 500 |
Déplacement | 720 |
Divers | 220 |
En choisissant les dépenses en axe des X et les montants en séries :

Graphique en barres et colonnes¶
Les barres et les colonnes des graphiques peuvent être affichées en mode cumulé. Une case à cocher est afficher pour le sélectionner.
Les résultats de requêtes pour un simple graphique en barres ou en colonnes peuvent être générés avec :
SELECT
'ACADEMY DINOSAUR' AS 'title',
0.99 AS 'rental_rate',
20.99 AS 'replacement_cost' UNION
SELECT 'ACE GOLDFINGER', 4.99, 12.99 UNION
SELECT 'ADAPTATION HOLES', 2.99, 18.99 UNION
SELECT 'AFFAIR PREJUDICE', 2.99, 26.99 UNION
SELECT 'AFRICAN EGG', 2.99, 22.99
Le résultat de cette requête est :
titre | rental_rate | replacement_cost |
---|---|---|
ACADÉMIE DINOSAURE | 0,99 | 20,99 |
AS GOLDFINGER | 4,99 | 12,99 |
TROUS D’ADAPTATION | 2,99 | 18,99 |
PRÉJUDICE DE L’AFFAIRE | 2,99 | 26,99 |
ŒUF AFRICAIN | 2,99 | 22,99 |
Choix du titre comme axe des X et des rental_rate et replacement_cost comme séries :

Nuage de points¶
Les nuages de points sont utiles pour identifier le mouvement d’une ou plusieurs variable(s) comparée(s) à une autre variable.
En utilisant les mêmes données de la section graphiques en barres et colonnes et en choisissant replacement_cost en axe des X et rental_rate en série :

Ligne, courbe et séries temporelles¶
Ces graphiques peuvent être utilisés pour illustrer les tendances des données. Les graphique en courbes dessinent des lignes lissées tandis que les séries temporelles affichent l’axe des X en prenant en considération les distances entre les dates/temps.
Les résultats de requête pour une ligne simple, une courbe ou un série temporelle peuvent être générés avec :
SELECT
DATE('2006-01-08') AS 'date',
2056 AS 'revenue',
1378 AS 'cost' UNION
SELECT DATE('2006-01-09'), 1898, 2301 UNION
SELECT DATE('2006-01-15'), 1560, 600 UNION
SELECT DATE('2006-01-17'), 3457, 1565
Le résultat de cette requête est :
date | revenu | coût |
---|---|---|
08-01-2016 | 2056 | 1378 |
09-01-2006 | 1898 | 2301 |
15-01-2006 | 1560 | 600 |
17-01-2006 | 3457 | 1565 |



Importer et exporter¶
Importer¶
Pour importer des données, aller dans l’onglet « Import » de phpMyAdmin. Pour importer des données dans une base de données ou une table spécifique, ouvrir la base de données ou la table avant d’aller dans l’onglet « Import ».
En plus de l’onglet normal « Importer et exporter », il est aussi possible d’importer un fichier SQL directement en le glissant-déposant depuis le gestionnaire de fichiers locaux sur l’interface de phpMyAdmin dans le navigateur.
En cas de problèmes pour l’importation de gros fichiers, merci de consulter 1.16 Je ne peux pas transférer de gros fichiers d’exportation (problèmes de mémoire, HTTP ou de temporisation - timeout)..
Il est possible d’importer en utilisant les méthodes suivantes :
Téléversement à l’aide d’un formulaire
Peut être réalisé avec tous les formats de fichiers gérés, et aussi les fichiers .gz ou .bz2, par exemple, mydump.sql.gz .
Requêtes SQL à l’aide d’un formulaire
Peut être réalisé avec tout export SQL valide.
Utilisation d’un répertoire de téléversement
Vous pouvez indiquer un répertoire de téléversement sur votre serveur Web où phpMyAdmin est installé. Après avoir téléversé votre fichier dans ce répertoire, vous pouvez le sélectionner dans le dialogue d’import de phpMyAdmin, voir$cfg['UploadDir']
.
phpMyAdmin peut importer différents formats couramment utilisés.
CSV¶
Le format de fichier de valeurs séparées par des virgules (CSV), souvent utilisés dans les tableurs et d’autres programmes pour les imports/exports.
Note
Lors de l’import de données dans une table à partir d’un fichier CSV où la table à un champ “auto_increment”, mettez la valeur “auto_increment” pour chaque enregistrement dans le champ CSV à “0” (zéro). Ceci permet au champ “auto_increment” de fonctionner correctement.
Il est maintenant possible d’importer un fichier CSV au niveau du serveur ou de la base de données. Au lieu d’avoir à créer une table pour y importer le fichier CSV, la structure la plus adaptée sera déterminée pour vous et les données y seront importées. Toutes les autres fonctionnalités, prérequis et limitations restent inchangés.
CSV en utilisant LOAD DATA¶
Similaire à CSV, mais utilisant l’analyseur interne de MySQL au lieu de celui de phpMyAdmin.
Fichier Shape d’ESRI¶
Les fichier shape d’ESRI est un format populaire de données vectorielles géospatiales utilisés dans les logiciels de système d’information géographique. Il est développé et régulé par ESRI sous forme d’une spécification (presque) libre pour l’inter-opérabilité de données entre les logiciels ESRI et les autres logiciels.
MediaWiki¶
Les fichiers MediaWiki, qui peuvent être exportés par phpMyAdmin (version 4.0 et suivantes), peuvent maintenant être importés. C’est le format utilisé par Wikipedia pour afficher les tables.
Open Document Spreadsheet (ODS)¶
Les classeurs OpenDocument contenant une ou plusieurs feuilles de tableurs peuvent maintenant être importés directement.
Pour importer un fichier ODS, les feuilles de tableur doivent être nommées d’une manière spécifique pour rendre l’import aussi simple que possible.
Nom de table¶
Pendant l’import, phpMyAdmin utilise le nom de la feuille comme nom de table. Vous devez renommer les feuilles dans votre classeur pour que leurs noms correspondent à ceux des tables existantes (ou de la table que vous voulez créer, bien que ce soit moins problématique puisque vous pouvez rapidement renommer la table dans l’onglet Opération).
Noms de colonnes¶
La première ligne de votre feuille de tableur doit contenir le com des colonnes (ceci peut être accompli en insérant une nouvelle ligne en haut de votre feuille). Sur l’écran d’import, cochez la case « La première ligne du fichier contient le nom des colonnes de la table ». De cette façon, les données seront importées dans les bonnes colonnes.
Note
Les formules et calculs ne seront PAS évalués, seules les dernières valeurs enregistrées seront chargées. Assurez-vous que toutes les valeurs soient dans l’état désiré avant l’import.
SQL¶
SQL peut être utilisé pour manipuler les données. Il est aussi utile pour restaurer des données.
XML¶
Les fichiers XML exportés par phpMyAdmin (version 3.3.0 et suivantes) peuvent désormais être importés. Les structures (bases de données, tables, vues, déclencheurs, etc.) et/ou les données seront créées en fonction du contenu du fichier.
Les schémas XML gérés ne sont pas encore documentés dans ce wiki.
Exporter¶
phpMyAdmin peut faire des exports sous forme de fichiers texte (même compressés) sur votre disque local (ou dans le dossier $cfg['SaveDir']
de votre serveur Web) dans divers formats :
CodeGen¶
Format NHibernate. Versions prévues : Java, Hibernate, PHP PDO, JSON, etc. Donc le nom préliminaire est codegen.
CSV¶
Le format de fichier de valeurs séparées par des virgules (CSV), souvent utilisés dans les tableurs et d’autres programmes pour les imports/exports.
CSV pour Microsoft Excel¶
C’est une version pré-configurée d’un export CSV qui peut être importée dans la plupart des versions anglaises de Microsoft Excel. Certaines versions localisées (comme le danois) nécessitent « ; » au lieu de « , » comme séparateur de champ.
Microsoft Word 2000¶
Si vous utilisez Microsoft Word 2000 ou les versions suivantes (ou compatibles comme OpenOffice.org), vous pouvez utiliser cet export.
JSON¶
JSON (JavaScript Object Notation) est un format d’échange de données léger. Il est facile à lire et écrire pour les humains et facile à analyser et générer pour les machines.
Modifié dans la version 4.7.0: La structure JSON générée a été changée dans phpMyAdmin 4.7.0 pour produire des données JSON valides.
Le JSON généré est une liste d’objets avec les attributs suivants :
-
type
¶ Le type d’un objet donné peut être :
header
- En-tête d’export contenant un commentaire et la version de phpMyAdmin.
database
- Marqueur de début de base de données, contenant le nom de la base de données.
table
- Export de données de tables.
-
comment
¶ Commentaire textuel facultatif.
Exemple de sortie :
[
{
"comment": "Export to JSON plugin for PHPMyAdmin",
"type": "header",
"version": "4.7.0-dev"
},
{
"name": "cars",
"type": "database"
},
{
"data": [
{
"car_id": "1",
"description": "Green Chrysler 300",
"make_id": "5",
"mileage": "113688",
"price": "13545.00",
"transmission": "automatic",
"yearmade": "2007"
}
],
"database": "cars",
"name": "cars",
"type": "table"
},
{
"data": [
{
"make": "Chrysler",
"make_id": "5"
}
],
"database": "cars",
"name": "makes",
"type": "table"
}
]
LaTeX¶
Si vous voulez intégrer des données de table ou de structure en LaTeX, c’est un bon choix.
LaTeX est un système de composition adapté pour les productions de documents scientifiques et mathématiques de qualité. Il est aussi adapté pour la production de toutes sortes de documents, de la simple lettre à des livres complets. LaTeX utilise TeX comme moteur de formatage. Vous pouvez en apprendre plus sur TeX et LaTeX sur the Comprehensive TeX Archive Network et short description of TeX.
La sortie doit être intégrée dans un document LaTeX avant d’être rendue, par exemple dans le document suivant :
\documentclass{article}
\title{phpMyAdmin SQL output}
\author{}
\usepackage{longtable,lscape}
\date{}
\setlength{\parindent}{0pt}
\usepackage[left=2cm,top=2cm,right=2cm,nohead,nofoot]{geometry}
\pdfpagewidth 210mm
\pdfpageheight 297mm
\begin{document}
\maketitle
% insert phpMyAdmin LaTeX Dump here
\end{document}
MediaWiki¶
Les tables et les données doivent être exportées dans le format MediaWiki, qui est utilisé par Wikipedia pour afficher les tables. Il peut exporter les structures, les données ou les deux, y compris les en-têtes et les noms de tables.
Feuilles de tableur OpenDocument¶
Standard ouvert pour les données de calculs qui a largement été adopté. Les plus récentes suite de bureau (comme LibreOffice, OpenOffice, Microsoft Office ou Google Docs) peuvent prendre en charge ce format.
Texte OpenDocument¶
Nouveau standard pour les données texte qui a largement été adopté. Les plus récents traitements de texte (comme LibreOffice, OpenOffice, Microsoft Word, AbiWord ou KWord) peuvent le prendre en charge.
PDF¶
Pour des raisons de présentation, des PDF non éditables pourraient être le meilleur choix pour vous.
Tableau PHP¶
Vous pouvez générer un fichier PHP déclarant un tableau multi-dimensionnel avec le contenant de la table ou de la base de données sélectionnée.
SQL¶
Les export SQL peuvent être utilisés pour restaurer votre base de données, et donc est utile pour les sauvegardes.
L’option « Taille maximum de la requête générée » semble ne pas être documentée. Mais l’expérience a montré qu’il découpait de gros INSERTS en plusieurs dont la taille ne dépasse pas le nombre d’octets donnés (ou caractères ?). Par conséquent, lors de l’import du fichiers, pour de grosses tables, vous éviterez d’avoir l’erreur : « Got a packet bigger than “max_allowed_packet” bytes ».
Options de données¶
Insertions complètes ajoute le nom des colonnes dans le fichiers d’export SQL. Ce paramètre améliore la lisibilité et la robustesse du fichier d’export. Ajouter le nom de la colonne augmente la taille du fichier, mais en combinaisons avec les « Insertions étendues », c’est négligeable.
Insertions étendues combine plus lignes de données dans une seule requête INSERT. Ceci réduit significativement la taille des fichiers d’export SQL, accélère l’importation et est généralement recommandé.
Texy!¶
Format de balisage Texy!. Vous pouvez voir un exemple sur Texy! demo.
XML¶
Export facilement analysable à utiliser avec des scripts personnalisés.
Modifié dans la version 3.3.0: Le schéma XML utilisé a été changé à partir de la version 3.3.0
YAML¶
YAML est un format de sérialisation de données facilement lisible pour un humain et très puissante en termes de traitement ( <https://yaml.org> ).
Thèmes personnalisés¶
phpMyAdmin peut gérer les thèmes de tiers. Vous pouvez télécharger des thèmes supplémentaires sur notre site Web <https://www.phpmyadmin.net/themes/>.
Configuration¶
Themes are configured with $cfg['ThemeManager']
and
$cfg['ThemeDefault']
. Under ./public/themes/
, you should not
delete the directory pmahomme
or its underlying structure, because this is
the system theme used by phpMyAdmin. pmahomme
contains all images and
styles, for backwards compatibility and for all themes that would not include
images or css-files. If $cfg['ThemeManager']
is enabled, you
can select your favorite theme on the main page. Your selected theme will be
stored in a cookie.
Création d’un thème personnalisé¶
Pour créer un thème :
- créez un nouveau sous-répertoire (par exemple « votre_nom_de_theme ») dans
./public/themes/
. - copiez les fichiers et les répertoires de
pmahomme
vers « votre_nom_de_theme » - éditez vos fichiers css dans « votre_nom_de_theme/css »
- mettez vos nouvelles images dans « votre_nom_de_theme/img »
- éditez
_variables.scss
dans « votre_nom_de_theme/scss » - éditez
theme.json
dans « votre_nom_de_theme » pour qu’il contienne les méta-données du thème (voir ci-dessous) - faites un nouveau cliché de votre thème et enregistrez-le sous « votre_nom_de_theme/screen.png »
Méta-données de thème¶
Modifié dans la version 4.8.0: Avant la version 4.8.0, les méta-données de thème étaient passées dans le fichier info.inc.php
. Ceci a été remplacé par le fichier file:theme.json pour permettre une analyse plus facile (sans avoir besoin de faire du code PHP) et pour gérer des fonctionnalités supplémentaires.
Dans le répertoire des thèmes se trouve le fichier theme.json
qui contient les méta-données de thème. Il se compose actuellement ainsi :
-
name
Afficher le nom du thème.
Ce champ est obligatoire.
-
version
Le numéro de version du thème, qui peut être arbitraire et qui n’a pas besoin de correspondre au numéro de version de phpMyAdmin.
Ce champ est obligatoire.
-
description
Description du thème. Ceci sera affiché sur le site Web.
Ce champ est obligatoire.
-
author
Nom de l’auteur du thème.
Ce champ est obligatoire.
-
url
Lien vers le site Web de l’auteur du thème. C’est une bonne idée pour indiquer comment obtenir de l’assistance.
-
supports
Tableau des versions majeures de phpMyAdmin gérées.
Ce champ est obligatoire.
Exemple : définition du thème Original livré avec phpMyAdmin 4.8 :
{
"name": "Original",
"version": "4.8",
"description": "Original phpMyAdmin theme",
"author": "phpMyAdmin developers",
"url": "https://www.phpmyadmin.net/",
"supports": ["4.8"]
}
Partage d’images¶
Si vous ne voulez pas utiliser vos propres symboles et boutons, supprimez le répertoire « img » dans « votre_nom_de_theme ». phpMyAdmin utilisera les icônes et boutons par défaut (du thème système pmahomme
).
Autres sources d’informations¶
Livre imprimé¶
Le guide d’utilisation de phpMyAdmin est le livre « Mastering phpMyAdmin for Effective MySQL Management » par MArc Delisle. Vous pouvez obtenir des informations sur ce livre et d’autres livres officiels sur la page livres du site phpMyAdmin.
FAQ - Foire Aux Questions¶
Veuillez jeter un œil à notre section Liens sur la page d’accueil officielle de phpMyAdmin pour une revue détaillée des fonctionnalités de phpMyAdmin et/ou de son interface.
Serveur¶
1.1 Mon serveur plante chaque fois qu’une action spécifique est requise ou phpMyAdmin renvoie une page vide ou remplie de caractères cryptiques, que puis-je faire ?¶
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.
1.2 Mon serveur Apache plante en utilisant phpMyAdmin.¶
Vous devriez d’abord essayer les dernières versions d’Apache, et si possible de MySQL. Si votre serveur continue à planter, veuillez demander de l’aide dans les divers groupes d’entraide de Apache.
1.3 (retiré).¶
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.¶
Ceci est un problème connu du filtre ISAPI de PHP : il n’est pas très stable. Veuillez utiliser plutôt le mode d’authentification par cookie.
1.6 Je ne peux pas utiliser phpMyAdmin avec PWS : rien ne s’affiche !¶
This seems to be a PWS bug. Filippo Simoncini found a workaround (at
this time there is no better fix): remove or comment the DOCTYPE
declarations (2 lines) from the scripts src/Header.php
and index.php
.
1.7 Comment puis-je compresser avec gzip un fichier d’exportation ou un export CSV ? Il semble que cela ne fonctionne pas.¶
Cette fonctionnalité est basée sur les fonctions PHP gzencode()
pour être plus indépendantes de la plateforme (Unix/Windows, Mode sécurisé ou non, et ainsi de suite). Aussi, vous devez avoir le support de Zlib (--with-zlib
).
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 téléversé est enregistré par PHP dans le répertoire de téléversement, 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 :
- créer un répertoire séparé pour les transferts : mkdir /tmp/php
- rendez propriétaire du répertoire le groupe et l’utilisateur du serveur Apache : chown apache.apache /tmp/php
- donnez les permissions appropriées : chmod 600 /tmp/php
- mettez
upload_tmp_dir = /tmp/php
dans le fichierphp.ini
- redémarrez Apache
1.9 (retiré).¶
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 l’onglet d’import.¶
Depuis la version 2.2.4, phpMyAdmin gère les serveurs avec les restrictions open_basedir. Cependant, vous devez créer un répertoire temporaire et le configurer comme $cfg['TempDir']
. Les fichiers transmis seront déplacés ici, et après l’exécution de vos commandes SQL, ils seront supprimés.
1.12 J’ai perdu le mot de passe de super-utilisateur de MySQL, que puis-je faire ?¶
phpMyAdmin s’authentifie auprès du serveur MySQL utilisé, donc pour retrouver un mot de passe phpMyAdmin il faut le récupérer au niveau de MySQL.
Le manuel MySQL explique comment réinitialiser les permissions.
Si le serveur MySQL est installé chez un fournisseur d’hébergement, merci de le contacter pour récupérer le mot de passe.
1.13 (retiré).¶
1.14 (retiré).¶
1.15 J’ai des problèmes avec les noms de colonnes mysql.user.¶
Dans les précédentes versions de MySQL, les colonnes User
et Password
étaient nommés user
et password
. Veuillez modifier vos noms de colonnes 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).¶
À partir de la version 2.7.0, le moteur d’importation a été ré-écrit et ces problèmes ne devraient plus arriver. Si possible, mettez à jour votre phpMyAdmin avec la dernière version pour tirer parti des nouvelles fonctionnalités d’importation.
Les premières choses à vérifier (ou à demander à votre hébergeur de vérifier) sont les valeurs de max_execution_time
, upload_max_filesize
, memory_limit
et post_max_size
dans le fichier de configuration php.ini
. Tous ces paramètres limitent la taille maximale des données qui peuvent être soumises et gérées par PHP. Veuillez noter que la taille post_max_size
doit être plus grande que upload_max_filesize
. Il existe plusieurs contournements si votre téléchargement est trop gros ou si votre hébergeur ne souhaite pas modifier les paramètres :
Regardez la fonctionnalité
$cfg['UploadDir']
. Ceci permet d’uploader un fichier vers un serveur via scp, FTP ou votre méthode de transfert de fichier préférée. PhpMyAdmin est alors capable d’importer les fichiers à partir du répertoire temporaire. Plus d’informations sont disponibles dans la section Configuration.En utilisant un utilitaire (tel que BigDump) pour découper le fichier avant de le téléverser. Nous ne gérons pas ceci ni aucune application tierce, mais nous savons que des utilisateurs ont réussi à le faire.
Si vous avez un accès au shell (ligne de commande), utilisez MySQL pour importer les fichiers directement. Vous pouvez faire ceci en utilisant la commande « source » dans MySQL :
source filename.sql;
1.17 Quelles versions de bases de données sont gérées par phpMyAdmin ?¶
Pour MySQL, les versions 5.5 et plus récentes sont supportées. Quant aux plus anciennes version de MySQL, notre page Downloads propose de plus anciennes versions de phpMyAdmin (qui pourraient ne plus être supportées).
Pour MariaDB, les versions 5.5 et plus récentes sont supportées.
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 de MySQL. Cette version de bibliothèque client peut être vérifiée dans le résultat de phpinfo(). En général, elle doit avoir au moins le même numéro de version mineure que votre serveur, comme indiqué dans 1.17 Quelles versions de bases de données sont gérées par phpMyAdmin ?. Ce problème est généralement observé en utilisant MySQL version 4.1 ou ultérieure. MySQL a changé l’empreinte numérique (« hash ») d’authentification et PHP essaie d’utiliser l’ancienne méthode. La solution adéquate est d’utiliser l”extension mysqli avec la bonne bibliothèque client pour correspondre à cette installation de MySQL. Il y a plus d’informations (et de moyens de contournement) dans la documentation MySQL.
1.18 (retiré).¶
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 TCPDF que nous utilisons pour cette fonctionnalité nécessite des fichiers spéciaux pour utiliser les polices. Veuillez vous référez au manuel TCPDF pour créer ces fichiers.
1.20 Je reçois une erreur sur l’absence des extensions mysqli et mysql.¶
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 mysqli.so ou php_mysqli.dll. phpMyAdmin a essayé de charger l’extension mais a échoué. Habituellement, le problème est résolu en installant un paquet nommé « PHP-MySQL » ou similaire.
Il y avait deux interfaces PHP pour MySQL - mysql
et mysqli
. L’interface mysql
a été retirée dans PHP 7.0.
Ce problème peut être causé par l’utilisation de mauvais chemin dans le fichier php.ini
ou l’utilisation du mauvais fichier php.ini
.
Assurez-vous que les fichiers d’extension existent dans le répertoire indiqué par extension_dir
et que les lignes correspondantes dans votre fichier php.ini
ne soient pas commentées (vous pouvez utiliser phpinfo()
pour vérifier votre configuration) :
[PHP]
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/Apache2/modules/php/ext"
Le fichier :php.ini peut être chargé de plusieurs emplacements (particulièrement sous Windows), aussi, veuillez vérifier que vous mettez à jour le bon. Avec Apache, vous pouvez indiquer un chemin spécifique pour ce fichier en utilisant la directive PHPIniDir
:
LoadModule php7_module "C:/php7/php7apache2_4.dll"
<IfModule php7_module>
PHPIniDir "C:/php7"
<Location>
AddType text/html .php
AddHandler application/x-httpd-php .php
</Location>
</IfModule>
Dans quelques rares cas, ce problème peut être causé par d’autres extensions chargées dans PHP qui empêchent les extensions MySQL d’être chargées. Si tout le reste a échoué, vous pouvez essayer de commenter les extensions des autres bases de données dans le fichier php.ini
.
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 colonnes 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
) : il suffit de modifier votre fichier my.ini
qui devrait se situer dans votre répertoire Windows directory et ajouter la ligne suivante au groupe [mysqld] :
set-variable = lower_case_table_names=0
Note
Forcer cette variable à 0 avec –lower-case-table-names=0 sur un système de fichier insensible à la casse et accéder à des tables MyISAM utilisant des casses différentes peut provoquer des corruptions d’index.
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 (retiré).¶
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 « IUSR_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_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']
dans 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 une colonne, j’obtiens une erreur et les colonnes sont dupliquées.¶
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
et
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 méthode recommandée est avec AddType
, aussi, il faut juste commenter les premières lignes et redémarrer Apache :
#SetOutputFilter PHP
#SetInputFilter PHP
1.31 Quelles versions de PHP sont prises en charge par phpMyAdmin ?¶
Depuis la version 4.5, phpMyAdmin gère seulement PHP 5.5 et ses versions plus récentes. Depuis la version 4.1, phpMyAdmin gère seulement PHP 5.3 et ses versions plus récentes. Pour les versions 4.0.x vous pouvez utiliser PHP 5.2.
PHP7 est pris en charge depuis phpMyAdmin 4.6, PHP 7.1 depuis la version 4.6.5, PHP 7.2 depuis la version 4.7.4.
HHVM est géré depuis phpMyAdmin 4.8.
Depuis la version 5.0, phpMyAdmin ne prend en charge que PHP 7.1 et plus récent. Depuis la version 5.2, phpMyAdmin ne prend en charge que PHP 7.2 et plus récent. Depuis la version 6.0, phpMyAdmin ne prend en charge que PHP 8.1 et plus récent.
1.35 Puis-je utiliser l’authentification HTTP avec Apache CGI ?¶
Oui. Cette procédure a été testée avec phpMyAdmin 2.6.1, PHP 4.3.9 en mode ISAPI sous IIS 5.1.
- Dans votre fichier
php.ini
, paramétrezcgi.rfc2616_headers = 0
- Dans la boîte de dialogue
Propriétés de site -> Sécurité de fichier/répertoire -> Accès anonyme
, cochez la caseAccès anonyme
et décochez toutes les autres cases (c-à-d. décochezAuthentification de base
,Authentification intégrée Windows
, etDigest
si ces cases sont cochées). Cliquez surOK
. - Dans
Erreurs personnalisées
, sélectionnez de401;1
à401;5
et cliquez sur le boutonDéfinir par défaut
.
Voir aussi
1.33 (retiré).¶
1.34 Puis-je accéder directement aux pages des bases de données ou des tables ?¶
Oui. Prêt à l’emploi, vous pouvez utiliser une URL comme http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script
. Pour server
, vous pouvez utiliser le numéro de serveur qui se réfère à l’index numérique de l’hôte (de $i
) dans config.inc.php
. Les parties table et script sont optionnelles.
Si vous voulez une URL de type http://server/phpMyAdmin/database[/table][/script]
, vous devez faire quelques configurations additionnelles. Les lignes suivantes s’appliquent uniquement pour le serveur Web Apache. D’abord, assurez-vous que vous avez activé certaines fonctionnalités dans la configuration globale d’Apache. Vous avez besoin que Options SymLinksIfOwnerMatch
et AllowOverride FileInfo
soient activées pour le répertoire où est installé phpMyAdmin et que mod_rewrite soit activé. Ensuite, vous avez seulement besoin de créer le fichier suivant .htaccess dans le dossier racine de l’installation de phpMyAdmin (n’oubliez pas de changer le nom du répertoire) :
RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
Modifié dans la version 5.1.0: La prise en charge du paramètre target
a été supprimée dans phpMyAdmin 5.1.0. Utilisez plutôt le paramètre route
.
1.35 Puis-je utiliser l’authentification HTTP avec Apache CGI ?¶
Oui. Cependant vous aurez besoin de passer la variable d’authentification à CGI en utilisant la règle rewrite
suivante :
RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
1.36 J’obtiens une erreur « 500 Internal Server Error ».¶
Il peut y avoir plusieurs explications à cela et consulter le journal des erreurs de votre serveur devrait vous donner une piste.
1.37 J’exécute phpMyAdmin sur un cluster de différentes machines et le chiffrement du mot de passe dans le cookie d’authentification ne fonctionne pas.¶
Si votre cluster est composé de machines d’architectures différentes, le code PHP utilisé pour le chiffrement/déchiffrement ne fonctionnera pas correctement. Ceci est dû à l’utilisation des fonctions pack/unpack dans le code. La seule solution est d’utiliser l’extension openssl qui fonctionne bien dans ce cas.
1.38 Puis-je utiliser phpMyAdmin sur un serveur sur lequel Suhosin est activé ?¶
Oui, mais les valeurs de configuration par défaut de Suhosin sont connues pour provoquer des problèmes avec certaines opérations, comme par exemple, l’édition d’une table avec beaucoup de colonnes sans primary key ou sans primary key textuelles.
La configuration de Suhosin pourrait mener à un dysfonctionnement dans certains cas et ne peut être totalement évité car phpMyAdmin est une application qui a besoin de transférer de gros volumes de colonnes dans une unique requête HHTP, ce qu’essaie parfois Suhosin d’empêcher. Généralement, toutes les directives suhosin.request.*
, suhosin.post.*
et suhosin.get.*
peuvent avoir un effet négatif sur l’utilisabilité de phpMyAdmin. Vous pouvez toujours trouver dans le fichier journal des erreurs la limite qui a causé la suppression de la variable, et vous pouvez ainsi diagnostiquer le problème et ajuster la variable de configuration.
Les valeurs par défaut pour la plupart des options de configuration de Suhosin fonctionneront pour la plupart des scénarios, cependant, vous pourriez vouloir ajuster au moins les paramètres suivants :
- suhosin.request.max_vars devrait être augmentée (par ex. 2048)
- suhosin.post.max_vars devrait être augmentée (par ex. 2048)
- suhosin.request.max_array_index_length devrait être augmentée (par ex. 256)
- suhosin.post.max_array_index_length devrait être augmentée (par ex. 256)
- suhosin.request.max_totalname_length devrait être augmentée (par ex. 8192)
- suhosin.post.max_totalname_length devrait être augmentée (par ex. 8192)
- suhosin.get.max_value_length devrait être augmentée (par ex. 1024)
- suhosin.sql.bailout_on_error doit être désactivée (par défaut)
- suhosin.log.* ne doit pas inclure SQL, sans quoi, vous aurez un grand ralentissement
- suhosin.sql.union doit être désactivée (par défaut).
- suhosin.sql.multiselect doit être désactivée (par défaut).
- suhosin.sql.comment doit être désactivée (par défaut).
Pour une sécurité améliorée, nous recommandons aussi ces modifications :
- suhosin.executor.include.max_traversal doit être activé comme contre-mesure aux attaques par inclusion de fichiers locaux. Nous suggérons de définir ceci à 2 car
../
est utilisé par la bibliothèque de ReCaptcha. - suhosin.cookie.encrypt doit être activé.
- suhosin.executor.disable_emodifier doit être activé.
Vous pouvez aussi désactiver les avertissements en utilisant la directive $cfg['SuhosinDisableWarning']
.
1.39 Quand j’essaie de me connecter en https, je peux me connecter, mais ma connexion est redirigée en http. Qu’est-ce qui peut causer ce comportement ?¶
Ceci est causé par le fait que les script PHP ne savent pas que le site utilise https. En fonction du serveur Web utilisé, vous devez le configurer pour indiquer à PHP l’URL à utiliser pour y accéder.
Par exemple, pour Apache, assurez-vous d’avoir activé SSLOptions
et StdEnvVars
dans votre configuration.
Voir aussi
1.40 Quand j’accède à phpMyAdmin via un serveur mandataire inversé Apache, le cookie de connexion ne fonctionne pas.¶
Pour pouvoir utiliser l’authentification par cookie, Apache doit savoir qu’il doit ré-écrire les en-têtes set-cookie. Un exemple de la documentation de Apache 2.2 :
ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/
Note : si l’URL de backend ressemble à http://server/~user/phpmyadmin
, le tilde « ~ » doit être encodé en « %7E » dans les lignes ProxyPassReverse*. Ce n’est pas spécifique à phpmyadmin, c’est juste le comportement d’Apache.
ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
ProxyPassReverse /mirror/foo/ http://backend.example.com/%7Euser/phpmyadmin
ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo
1.41 Quand je vois une base de données et que je demande à voir ses privilèges, j’obtiens une erreur à propos d’une colonne inconnue.¶
Les tables de privilèges du serveur MySQL ne sont pas à jour, vous devez exécuter la commande mysql_upgrade sur le serveur.
1.42 Comment empêcher les robots d’accéder à phpMyAdmin ?¶
Vous pouvez ajouter diverses règles dans .htaccess pour filtrer les accès en se basant sur le champ user agent. Ces règles sont facilement contournables, mais cela peut empêcher au moins quelques robots d’accéder à votre installation.
RewriteEngine on
# Allow only GET and POST verbs
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ [NC,OR]
# Ban Typical Vulnerability Scanners and others
# Kick out Script Kiddies
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|wkito|pikto|scan|acunetix).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
# Ban Search Engines, Crawlers to your administrative panel
# No reasons to access from bots
# Ultimately Better than the useless robots.txt
# Did google respect robots.txt?
# Try google: intitle:phpMyAdmin intext:"Welcome to phpMyAdmin *.*.*" intext:"Log in" -wiki -forum -forums -questions intext:"Cookies must be enabled"
RewriteCond %{HTTP_USER_AGENT} ^.*(AdsBot-Google|ia_archiver|Scooter|Ask.Jeeves|Baiduspider|Exabot|FAST.Enterprise.Crawler|FAST-WebCrawler|www\.neomo\.de|Gigabot|Mediapartners-Google|Google.Desktop|Feedfetcher-Google|Googlebot|heise-IT-Markt-Crawler|heritrix|ibm.com\cs/crawler|ICCrawler|ichiro|MJ12bot|MetagerBot|msnbot-NewsBlogs|msnbot|msnbot-media|NG-Search|lucene.apache.org|NutchCVS|OmniExplorer_Bot|online.link.validator|psbot0|Seekbot|Sensis.Web.Crawler|SEO.search.Crawler|Seoma.\[SEO.Crawler\]|SEOsearch|Snappy|www.urltrends.com|www.tkl.iis.u-tokyo.ac.jp/~crawler|SynooBot|crawleradmin.t-info@telekom.de|TurnitinBot|voyager|W3.SiteSearch.Crawler|W3C-checklink|W3C_Validator|www.WISEnutbot.com|yacybot|Yahoo-MMCrawler|Yahoo\!.DE.Slurp|Yahoo\!.Slurp|YahooSeeker).* [NC]
RewriteRule .* - [F]
1.43 Pourquoi ne puis-je pas afficher la structure de ma table contenant des centaines de colonnes ?¶
Car votre paramètre PHP memory_limit
est trop faible ; ajustez-le dans php.ini
.
1.44 Comment réduire la taille de la version installée de phpMyAdmin sur disque ?¶
Certains utilisateurs ont demandé la possibilité de réduire la taille d’une installation de phpMyAdmin. Ceci n’est pas recommandé et peut conduire à une confusion quant aux fonctionnalités manquantes, mais peut néanmoins être accompli. Voici une liste des fichiers qui peuvent être supprimés et de la fonctionnalité correspondante qui est enlevée de manière élégante :
- dossier
./locale/
, ou des sous-dossiers inutilisés (traductions) - Tous les thèmes inutilisés dans
./public/themes/
à l’exception du thème par défaut pmahomme. ./libraries/language_stats.inc.php
(statistiques de traduction)./doc/
(documentation)./setup/
(script de configuration)./examples/
(exemples de configuration)./sql/
(scripts SQL pour configurer des fonctionnalités avancées)./js/src/
(fichiers sources pour reconstruire ./js/dist/)- :file:”./js/global.d.ts” Fichier de déclaration de type JS
- Exécutez rm -rv vendor/tecnickcom/tcpdf && composer dump-autoload –no-interaction –optimize –dev (export au format PDF)
- Exécuter rm -rv vendor/williamdes/mariadb-mysql-kbs && composer dump-autoload –no-interaction –optimize –dev (liens externes vers les documentations de MariaDB et MySQL)
- Exécutez “rm -rv vendor/code-lts/u2f-php-server && composer dump-autoload –no-interaction –optimize –dev” (authentification de second facteur U2F)
- Exécutez “rm -rv vendor/pragmarx/* && composer dump-autoload –no-interaction –optimize –dev” (authentification à deuxième facteur 2FA)
- Exécutez “rm -rv vendor/bacon/bacon-qr-code && composer dump-autoload –no-interaction –optimize –dev” (génération de QRcode pour l’authentification à deuxième facteur 2FA)
1.45 Je reçois un message d’erreur à propos d’une méthode d’authentification inconnue caching_sha2_password lors de la tentative d’identification¶
Lorsque vous vous identifiez en utilisant MySQL version 8 ou plus récente, vous pourriez rencontrer un message d’erreur comme celui-ci :
mysqli_real_connect() : Le serveur a demandé une méthode d’authentification inconnue du client [caching_sha2_password]
mysqli_real_connect() : (HY000/2054) : La méthode d’authentification demandée par le serveur est inconnue du client
Cette erreur est due à un problème de compatibilité de version entre PHP et MySQL. Le projet MySQL a introduit une nouvelle méthode d’authentification (nos tests montrent que cela a commencé avec la version 8.0.11) mais PHP n’a pas inclus la possibilité d’utiliser cette méthode d’authentification. PHP rapporte que cela a été corrigé dans la version 7.4 de PHP.
Les utilisateurs qui en font l’expérience sont encouragés à mettre à jour leur installation PHP, cependant une solution de contournement existe. Votre compte utilisateur MySQL peut être configuré pour utiliser l’ancienne authentification avec une commande telle que
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Configuration¶
2.1 Le message d’erreur « Warning: Cannot add header information - headers already sent by … » est affiché, quel est le problème ?¶
Éditer le fichier config.inc.php
et s’assurer 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 ?¶
Le message d’erreur peut aussi être : Error #2002 - The server is not responding (or the local MySQL server’s socket is not correctly configured).
Pour cela, connectez-vous à votre serveur et allez dans le répertoire bin de MySQL. Dans ce répertoire il devrait y avoir un fichier appelé mysqladmin. Saisissez alors ./mysqladmin variables
, et cela devrait vous donner un paquet d’infos sur votre serveur MySQL, y compris le socket (/tmp/mysql.sock, par exemple). Vous pouvez aussi demander à votre FAI les informations de connexion, ou, si vous hébergez votre serveur, utilisez l’interface de ligne de commande “mysql” et saisissez “status” pour obtenir le type de connexion, le socket et le port.
Vous devez ensuite indiquer à PHP d’utiliser ce socket. Vous pouvez faire cela pour tous les scripts PHP dans le fichier php.ini
, ou seulement pour phpMyAdmin dans le fichier config.inc.php
. Par exemple : $cfg['Servers'][$i]['socket']
Veuillez aussi vous assurer que les permissions de ce fichier permettent la lecture par votre serveur Web.
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.
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 paramétrer 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 « b » ou « alpha » cela signifie que vous exécutez une version test 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 que les variables PHP_SELF ou REQUEST_URI soient correctement renseignées dans la configuration de votre serveur Web.
Si vous utilisez phpMyAdmin derrière un reverse proxy, veuillez définir la directive $cfg['PmaAbsoluteUri']
dans votre fichier de configuration phpMyAdmin pour qu’elle soit conforme à votre installation.
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 hôte local, que vous redirigez avec port-forwarding vers un autre hôte, MySQL ne résout pas le nom d’hôte local comme attendu. 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 saisissez « 127.0.0.1 » comme nom d’hôte, tout se passe bien et MySQL utilise la connexion TCP.
2.7 Utiliser et créer des thèmes¶
Voir Thèmes personnalisés.
2.8 J’obtiens des erreurs « Missing parameters », que puis-je faire ?¶
Vérifiez les points suivants :
- Dans
config.inc.php
, essayez de laisser la directive$cfg['PmaAbsoluteUri']
vide. Voir également 4.7 La fenêtre d’authentification est affichée plus d’une fois, pourquoi ?. - Votre installation de PHP est peut-être corrompue ou vous avez besoin de mettre à jour votre Zend Optimizer. Voir <https://bugs.php.net/bug.php?id=31134>.
- Si vous utilisez Hardened PHP avec la directive ini
varfilter.max_request_variables
et la définissez à sa valeur par défaut (200) ou une autre valeur plus basse, vous pouvez obtenir cette erreur si votre table a un grand nombre de colonnes. Ajustez ce paramètre en conséquence. (Merci à Klaus Dorninger pour l’astuce). - Dans le fichier
php.ini
la directivearg_separator.input
, avec une valeur « ; » provoquera cette erreur. Remplacez-la par « &; ». - Si vous utilisez Suhosin, vous devriez augmenter les limites de requête.
- Le répertoire spécifié dans la directive
session.save_path
du fichierphp.ini
n’existe pas ou est en lecture seule (ceci peut être causé par le bogue de l’installeur de PHP)..
2.9 Afficher les barres de progression d’upload¶
Pour pouvoir voir une barre de progression pendant vos uploads, votre serveur doit avoir l’extension uploadprogress et vous devez utiliser PHP 5.4.0 ou supérieure. De plus, l’extension JSON doit être activée dans votre installation PHP.
Si vous utilisez PHP 5.4.0 ou supérieur, vous devez définir le paramètre session.upload_progress.enabled
à 1
dans votre fichier php.ini
. Cependant, à partir de phpMyAdmin 4.0.4, cette barre de progression basée sur les sessions a été désactivée en raison de problèmes.
2.10 Comment générer une chaîne d’octets aléatoires¶
Une façon de générer une chaîne d’octets aléatoires adaptée à une utilisation cryptographique consiste à utiliser la fonction random_bytesPHP. Comme cette fonction renvoie une chaîne binaire, la valeur renvoyée doit être convertie au format imprimable avant de pouvoir la copier.
Par exemple, la directive de configuration $cfg['blowfish_secret']
requiert une chaîne de 32 octets. La commande suivante peut être utilisée pour générer une représentation hexadécimale de cette chaîne.
php -r 'echo bin2hex(random_bytes(32)) . PHP_EOL;'
L’exemple ci-dessus produira quelque chose de semblable :
f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851
Et ensuite cette valeur hexadécimale peut être utilisée dans le fichier de configuration.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
La fonction “sodium_hex2bin <https://www.php.net/sodium_hex2bin>”_ est utilisée ici pour reconvertir la valeur hexadécimale au format binaire.
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’export compressés sont construits en mémoire et à cause de cela sont limités par la limite mémoire de php. Pour les exports gzip/bzip2, ceci peut être outrepassé depuis la version 2.5.4 en utilisant $cfg['CompressOnFly']
(activé par défaut). Les exports zip ne peuvent pas être traitées de cette façon, donc si vous avez besoin de fichiers zip pour des exports plus importants, vous devrez utiliser un autre moyen.
3.3 Avec les tables InnoDB, je perds les relations de clés étrangères quand je renomme une table ou une colonne.¶
C’est un bogue de InnoDB, consulter <https://bugs.mysql.com/bug.php?id=21704>.
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 les anciennes versions de mysqldump
créaient 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, les hiérarchies multiples sont incorrectement 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é.
Voir aussi
3.6 (retiré).¶
3.7 J’ai une table avec beaucoup de colonnes (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 primary key ou de unique key, 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 primary key ou une unique key.
3.8 Je ne peux pas utiliser de formulaires HTML (cliquables) dans des colonnes 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 Liens 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 <https://dev.mysql.com/doc/refman/5.7/en/sql-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 #1013.
3.10 Homonymes et pas de clé primaire : Quand les résultats d’un SELECT affichent 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 primary key, ainsi phpMyAdmin peut l’utiliser pour les liens Modifier et Effacer.
3.11 Le nombre d’enregistrements pour les tables InnoDB est incorrect.¶
phpMyAdmin utilise une méthode rapide pour obtenir le nombre de lignes, et cette méthode ne renvoie qu’un nombre approximatif pour les tables InnoDB. Voir $cfg['MaxExactCount']
pour le moyen de modifier ces résultats, mais cela peut avoir un sérieux impact sur les performances. Cependant, ce nombre approximatif peut être facilement remplacé par le nombre exact en cliquant sur le nombre approximatif. Ceci peut être réalisé pour toutes les tables à la fois en cliquant sur la somme des lignes affichée en bas.
Voir aussi
3.12 (retiré).¶
3.13 J’obtiens une erreur en saisissant USE
suivi du nom d’une base de données contenant un trait d’union.¶
Les tests que j’ai effectués avec l’API actuelle de MySQL 5.1.49, montre que cette API n’accepte pas cette syntaxe pour la commande USE.
3.14 Je n’arrive pas à naviguer dans une table quand je n’ai pas le droit de faire un SELECT sur une des colonnes.¶
C’est une limitation connue de phpMyAdmin depuis le début et ce ne sera probablement pas résolu à l’avenir.
3.15 (retiré).¶
3.16 (retiré).¶
3.17 (retiré).¶
3.18 Lors de l’import d’un fichier CSV qui contient plusieurs tables, elles sont fusionnées en une seule.¶
Il n’existe pas de moyen fiable de différencier les tables en format CSV. Pour le moment, vous devrez fractionner les fichiers CSV contenant plusieurs tables.
3.19 Lors de l’import d’un fichier et quand phpMyAdmin détermine la structure de données appropriée, il n’utilise que les types int, decimal et varchar types.¶
Actuellement, le système de détection de type d’import ne peut assigner que ces types MySQL aux colonnes. Dans le futur, d’autres seront ajoutés, mais en attendant, vous devrez éditer la structure après l’import. Vous devez également noter que phpMyAdmin utilisera la taille de l’élément le plus gros pour toute colonne donnée comme taille de colonne pour le type approprié. Si vous savez que vous importerez des éléments plus gros pour cette colonne, vous devez alors ajuster la taille de la colonne. Ceci est fait dans un but d’efficacité.
3.20 Après la mise à jour, certains signets disparaissent ou leur contenu ne peut être affiché.¶
À un certain moment, le jeu de caractères utilisé pour stocker les signets a changé. Il est préférable de recréer vos signets à partir de la nouvelle version de phpMyAdmin.
3.21 Je ne peux pas me connecter avec un nom d’utilisateur contenant des caractères unicode comme « à ».¶
Ceci peut arriver si le serveur MySQL n’est pas configuré pour utiliser par défaut le jeu de caractères utf-8. Ceci est une limitation de l’interaction de PHP et MySQL. Il n’existe pas de moyen pour PHP pour définir le jeu de caractères avant l’authentification.
Voir aussi
FAI et 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 aussi
4.2 Quel est le meilleur moyen de sécuriser phpMyAdmin contre les attaques malicieuses ?¶
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 les fonctionnalités d’authentification par HTTP ou par cookie de phpMyAdmin.
Suggestions :
- Votre fichier
config.inc.php
devrait êtrechmod 660
. - Tous les fichiers phpMyAdmin devraient être
chown -R phpmy:apache
, oùphpmy
est un utilisateur dont le mot de passe est connu de vous seul, etapache
est le groupe avec lequel Apache est exécuté. - Suit les recommandations de sécurité pour PHP et votre serveur Web.
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 :
$cfg['Servers'][$i]['controluser']
et/ou$cfg['Servers'][$i]['controlpass']
sont erronés.- L’utilisateur/mot de passe que vous spécifiez dans le dialogue de connexion sont invalides.
- Vous avez déjà configuré un mécanisme de sécurité pour le répertoire phpMyAdmin, par exemple un fichier .htaccess. Cela doit interférer avec l’authentification phpMyAdmin, aussi, supprimez-le.
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 ses bases 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.
//block root from logging in except from the private networks
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = [
'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 saisissez une adresse IP alors qu’un nom de domaine est défini dans le fichier de configuration.
4.8 Quels paramètres puis-je utiliser dans l’URL de démarrage de phpMyAdmin ?¶
Au démarrage de phpMyAdmin, vous pouvez utiliser les paramètres db
et server
. Ce dernier peut contenir soit l’index numérique de l’hôte (à partir de $i
du fichier de configuration) soit un des noms d’hôte présents dans le fichier de configuration.
Par exemple, pour accéder directement à une base de données particulière, une URL peut être construite comme https://example.com/phpmyadmin/?db=sakila
.
Modifié dans la version 4.9.0: La prise en charge des paramètres pma_username
et pma_password
a été supprimée dans phpMyAdmin 4.9.0 (voir PMASA-2019-4).
Navigateurs ou systèmes 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 colonnes.¶
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 colonnes. Un moyen de contournement est de créer un plus petit nombre de colonnes, puis de revenir dans les propriétés de la table et d’ajouter les autres colonnes.
5.2 Avec Xitami 2.5b4, phpMyAdmin ne traite pas les champs formulaires.¶
Ce n’est pas un problème de phpMyAdmin mais un bogue connu de Xitami : vous rencontrerez ce problème chaque fois qu’un script/site Web utilise des formulaires. Mettez à jour votre serveur Xitami ou utilisez une précédente version.
5.3 J’ai des problèmes d’exportation de table avec Konqueror (phpMyAdmin 2.2.2).¶
Avec Konqueror 2.1.1 : les exports classiques, zippés et gzippés fonctionnent correctement, sauf que le nom de fichier proposé est toujours “tbl_dump.php”. Les exports au formats 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 doivent être effectué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.¶
Néanmoins, sachez que MS Internet Explorer paraît être vraiment bogué en ce qui concerne les cookies, au moins jusqu’à la version 6.
5.5 (retiré).¶
5.6 (retiré).¶
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 (retiré).¶
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 détection, mode qui est géré par les versions récentes de la plupart des navigateurs.
5.12 Mac OS X : le navigateur Safari change les caractères spéciaux en « ? ».¶
Ce problème a été rapporté par un utilisateur de macOS qui ajoute que Chimera, Netscape et Mozilla n’ont pas ce problème.
5.13 (retiré)¶
5.14 (retiré)¶
5.15 (retiré)¶
5.16 Avec Internet Explorer, j’obtiens des erreurs JavaScript « Accès refusé ». Ou je n’arrive pas à faire fonctionner phpMyAdmin sous Windows.¶
Vérifiez les points suivants :
- Vous avez peut-être défini votre paramètre
$cfg['PmaAbsoluteUri']
du fichierconfig.inc.php
avec une adresse IP et vous démarrez phpMyAdmin avec une URL contenant un nom de domaine, ou inversement. - Les paramètres de sécurité de Internet Explorer et/ou du Centre de sécurité Microsoft sont trop élevés et empêchent par conséquent l’exécution des scripts.
- Le pare-feu de Windows bloque Apache et MySQL. Vous devez autoriser les ports HTTP (80 ou 443) et le port MySQL (normalement 3306) en entrée et en sortie.
5.17 Avec Firefox, je ne peux pas supprimer des lignes de données ou une base de données.¶
Plusieurs utilisateurs ont confirmé que l’extension « Tabbrowser » qu’ils avaient installé sur leur Firefox est la cause de ce problème.
5.18 (retiré)¶
5.19 J’obtiens des erreurs JavaScript dans mon navigateur.¶
Des problèmes ont été rapportés avec la combinaison de plusieurs extensions de navigateur. Désactivez toutes les extensions et vider le cache de votre navigateur pour voir si le problème disparaît.
5.20 J’obtiens des erreurs sur la violation de politique de sécurité de contenu.¶
Si vous obtenez des erreurs du type :
Refused to apply inline style because it violates the following Content Security Policy directive
Ceci est habituellement provoqué par un logiciel, qui réécrit de façon incorrecte les en-têtes Content Security Policy. Il s’agit généralement de l’antivirus du proxy ou d’extensions de votre navigateur.
Si vous obtenez de telles erreurs, essayez de désactiver le proxy HTTP dans l’antivirus ou de désactiver la réécriture des en-têtes Content Security Policy dans celui-ci. Si cela ne fonctionne toujours pas, essayez de désactiver les extensions de votre navigateur.
Cela paut être aussi un problème de configuration du serveur (si le serveur Web est configuré pour émettre des en-têtes Content Security Policy, ils peuvent écraser ceux de phpMyAdmin).
Les programmes connus pour provoquer de telles erreurs sont :
- Kaspersky Internet Security
5.21 Je reçois des erreurs au sujet d’une opération potentiellement dangereuse lors de la recherche de table ou de l’exécution d’une requête SQL.¶
Si vous obtenez des erreurs du type :
A potentially unsafe operation has been detected in your request to this site.
Cela est généralement causé par le pare-feu d’application Web faisant filtrage des demandes. Il essaie d’empêcher l’injection SQL, cependant phpMyAdmin est un outil conçu pour exécuter des requêtes SQL, donc il rend inutilisable.
Veuillez autoriser les scripts phpMyAdmin dans les paramètres du pare-feu de l’application web ou les désactiver complètement pour le chemin phpMyAdmin.
Les programmes connus pour provoquer de telles erreurs sont :
- Pare-feu d’application Web Wordfence
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 colonne. Les erreurs courantes sont :
- l’utilisation de
VARCHAR
sans l’argument de taille - l’utilisation de
TEXT
ouBLOB
avec une taille en argument
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 définis un index pour deux colonnes et phpMyAdmin ne génère qu’un seul index avec ces deux colonnes.¶
C’est la façon de créer un index multi-colonnes. 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 colonne qui peut être nulle. Avant la version 2.2.3, vous deviez saisir « null », sans les guillemets, comme valeur de colonne. Depuis la version 2.5.5, vous devez utiliser la case à cocher pour obtenir une réelle valeur NULL, aussi, si vous saisissez « NULL » cela signifie que vous voulez un NULL littéral dans la colonne et non une valeur NULL (cela fonctionne dans PHP4).
6.4 Comment puis-je sauvegarder ma base de données ou ma table ?¶
Cliquez sur le nom d’une base de données ou d’une table dans le panneau de navigation pour afficher les propriétés. Ensuite à partie du menu, cliquez sur « Export », pour exporter la structure, les données ou les deux. Ceci générera les déclarations SQL standards qui pourront être utilisées pour recréer votre base de données/table. Vous devrez utiliser « Enregistrer comme un fichier » pour que phpMyAdmin puisse transmettre le fichier d’export à votre PC. En fonction de votre configuration PHP, vous verrez des options de compression du fichier d’export. Consultez aussi la variable de configuration $cfg['ExecTimeLimit']
. Pour de l’aide supplémentaire sur ce sujet, recherchez 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 navigation pour afficher les propriétés. Sélectionnez « Importer » dans la liste des onglets dans le cadre de droite (ou « SQL » si votre version de phpMyAdmin est antérieure à la version 2.7.0). Dans la section « Emplacement du fichier texte », saisissez votre nom de fichier d’exportation, ou cliquez sur le bouton Parcourir. Puis cliquez sur Exécuter. Avec la version 2.7.0, le moteur d’import a été ré-écrit. Si c’est possible, nous vous suggérons de mettre à jour pour tirer partie des nouvelles fonctionnalités. Pour de l’aide supplémentaire sur ce sujet, recherchez le mot « upload » dans ce document.
Note : Pour les erreurs lors de l’importation des dumps exportées depuis les anciennes versions de MySQL vers les nouvelles versions de MySQL, veuillez vérifier 6.41 Je reçois des erreurs d’importation lors de l’importation des dumps exportées depuis les anciennes versions de MySQL (antérieures à 5.7.6) vers les nouvelles versions de MySQL (5.7.7+), mais elles fonctionnent correctement lorsqu’elles sont importées sur les mêmes anciennes versions ?.
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_countries (
country_code char(1) NOT NULL default '',
description varchar(10) NOT NULL default '',
PRIMARY KEY (country_code)
) ENGINE=MyISAM;
INSERT INTO REL_countries VALUES ('C', 'Canada');
CREATE TABLE REL_persons (
id tinyint(4) NOT NULL auto_increment,
person_name varchar(32) NOT NULL default '',
town_code varchar(5) default '0',
country_code char(1) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', 'C');
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
CREATE TABLE REL_towns (
town_code varchar(5) NOT NULL default '0',
description varchar(30) NOT NULL default '',
PRIMARY KEY (town_code)
) ENGINE=MyISAM;
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
INSERT INTO REL_towns VALUES ('M', 'Montréal');
Pour configurer les liens appropriés et afficher l’information :
- sur la table « REL_persons » cliquer sur Structure, puis sur Gestion des relations
- pour « town_code », choisir dans les listes déroulantes, « mydb », « REL_towns », « town_code » respectivement pour la base de données, la table et la colonne étrangères
- pour « country_code », choisir dans les listes déroulantes, « mabdd », « REL_countries », « country_code » respectivement pour la base de données, la table et la colonne étrangères
- sur la table « REL_towns » cliquer sur Structure, puis Gestion des relations
- dans « Colonne à afficher », choisir « Description »
- répétez les deux précédentes étapes pour la table « REL_countries »
Puis tester comme suit :
- Cliquer le nom de base de données dans le cadre de navigation
- choisir « Requête »
- utilisez les tables : persons, towns, countries
- cliquer sur « Mise-à-jour de la requête »
- dans la ligne des colonnes, choisissez persons.person_name et cliquez sur la case à cocher « Afficher »
- faites la même chose pour towns.description et countries.descriptions dans les deux autres colonnes
- cliquer sur « Mise-à-jour de la requête » et vous verrez dans la boîte de requête que la jointure correcte a été générée
- cliquer sur « Exécuter la requête »
6.7 Comment puis-je utiliser la fonctionnalité « Colonnes à 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 aussi 6.21 En mode modifier/insérer, comment puis-je voir une liste des valeurs possibles pour une colonne, basée sur une table étrangère ? pour une fonctionnalité que « afficher colonne » active : une liste déroulante des valeurs possibles.
6.8 Comment puis-je produire un schéma PDF de ma base de données ?¶
Tout d’abord, les variables « relation », « table_coords » et « pdf_pages » doivent être renseignées.
- Sélectionnez votre base de données dans le cadre de navigation.
- Choisissez « :guilabel:`Concepteur » dans la barre de navigation en haut.
- Déplacez les tables comme vous le souhaitez.
- Choisissez « Exporter le schéma » dans le menu de gauche.
- La fenêtre d’exportation s’ouvrira alors.
- Sélectionnez le type d’exportation PDF, et ajustez les autres paramètres.
- Cliquez sur Exécuter et le téléchargement du fichier commencera.
Voir aussi
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 placez un backslash (« ») avant le trait de soulignement (« _ »), cela signifie que le nom de la base de données contiendra un 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.¶
Structure :
- « ADD DROP TABLE » ajoutera une ligne disant à MySQL de supprimer la table si elle existe déjà pendant l’importation. Cela ne supprime PAS la table après votre export, cela n’affecte que le fichier d’importation.
- Ajouter « IF NOT EXISTS » créera seulement la table si elle n’existe pas. Sinon, vous pouvez obtenir une erreur si le nom de table existe mais qu’elle a une structure différente.
- « Inclure la valeur courante de l’AUTO_INCREMENT » assure que la valeur AUTO_INCREMENT (s’il y en a une) sera incluse dans la sauvegarde.
- « Protéger les noms des tables et des colonnes par des « ` » » assure que les noms de colonnes et de tables contenant des caractères spéciaux sont protégés.
- « Inclure sous forme de commentaires » inclut les commentaires des colonnes, les relations et les types de médias définis dans la base de données pmadb dans le fichier d’exportation en tant que commentaires SQL (/* xxx */).
Données :
- « Insertions complètes » ajoute les noms de colonne sur chaque commande INSERT, pour une meilleure documentation (mais le fichier résultant est plus gros).
- « Insertions étendues » fournit une fichier d’exportation plus petit en utilisant seulement une fois INSERT et le nom de la table.
- « Insertions avec délais (DELAYED) » sont très bien expliquées dans le Manuel MySQL.
- « Ignorer les erreurs de doublons (INSERT IGNORE) » traite les erreurs comme des avertissements. À nouveau, vous pourrez trouver plus de détails dans le Manuel MySQL, mais en gros, avec cette option, les valeurs invalides sont ajustées et insérées plutôt que de provoquer l’échec de la déclaration tout entière.
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 (retiré).¶
6.15 Je veux ajouter une colonne 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 une colonne 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 colonne BLOB, et définir une taille pour l’index sur une colonne BLOB.
6.16 Comment puis-je me déplacer simplement dans une page remplie de champs modifiables ?¶
Vous pouvez utiliser Ctrl+flèches (Option+flèches dans Safari) pour vous déplacer dans la plupart des pages ayant beaucoup de champs d’édition (changements de structure de tables, édition de lignes, etc.).
6.17 Transformations : je ne peux pas saisir mon propre type mime ! À quoi peut bien servir cette fonctionnalité alors ?¶
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 la colonne. En saisissant 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 cœur de sorte qu’ils puissent les saisir à 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 ? Quel est le but de ces variables ?¶
Il faut avoir configuré les Stockage de la configuration de phpMyAdmin pour utiliser la fonctionnalité de signets. Une fois réalisé, il est possible d’utiliser les signets dans l’onglet SQL.
Voir aussi
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} % or any class you want
\usepackage{longtable} % for displaying table
\begin{document} % start of document
\include{table} % including exported table
\end{document} % end of document
6.20 Je vois beaucoup de bases de données qui ne sont pas à moi et que je ne peux accéder.¶
Vous avez un de ces privilèges globaux : CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Ces privilèges permettent également aux utilisateurs de voir tous les noms de bases de données. Donc, si vos utilisateurs n’ont pas besoin de ces privilèges, vous pouvez les supprimer et leur liste de bases de données sera raccourcie.
Voir aussi
6.21 En mode modifier/insérer, comment puis-je voir une liste des valeurs possibles pour une colonne, basée sur une table étrangère ?¶
Vous devez configurer les liens appropriés entre les tables, ainsi que la « Colonne à afficher » (display column) dans la table étrangère. Voir la section 6.6 Comment puis-je utiliser la table relation dans Query-by-example ? pour un exemple. Ensuite, s’il y a 100 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 la colonne à afficher, la seconde liste contenant la colonne à afficher et la clé. La raison de cela est de permettre de saisir la première lettre soit de la clé, soit de la colonne à afficher. Pour 100 valeurs ou plus, une fenêtre distincte apparaîtra, pour parcourir les valeurs de clés étrangères et en choisir une. Pour changer cette limite par défaut de 100, voir $cfg['ForeignKeyMaxLimit']
.
6.22 Signets : Puis-je exécuter automatiquement en entrant en mode Afficher pour une table ?¶
Oui. Si un signet a le même libellé qu’un nom de table et qu’il n’est pas public, il sera exécuté.
Voir aussi
6.23 Export : J’ai entendu dire que phpMyAdmin peut exporter des fichiers au format Microsoft Excel ?¶
Vous pouvez utiliser le format CSV pour Microsoft Excel, qui fonctionne tel quel.
Modifié dans la version 3.4.5: Depuis phpMyAdmin 3.4.5, le support pour l’export direct vers Microsoft Excel version 97 et supérieur a été retiré.
6.24 Maintenant que phpMyAdmin gère nativement les commentaires de colonnes MySQL 4.1.x, qu’arrive-t-il à mes commentaires de colonnes stockés dans pmadb ?¶
La migration automatique des commentaires de colonne de style pmadb d’une table vers le format natif est effectuée chaque fois que vous entrez dans la page Structure pour cette table.
6.25 (retiré).¶
6.26 Comment puis-je sélectionner un ensemble de lignes ?¶
Cliquez sur la première ligne, puis maintenez appuyée la touche MAJ et cliquez sur la dernière ligne. Ceci fonctionne partout où vous pouvez voir des lignes, par exemple dans le mode Navigation ou sur la page Structure.
6.27 Quels formats de chaînes puis-je utiliser ?¶
Dans tous les endroits où phpMyAdmin accepte le formatage de chaînes, vous pouvez utiliser l’expansion de format de chaînes @VARIABLE@
et strftime. Les variables étendues dépendent du contexte (par exemple, si vous avez choisi une table, vous ne pouvez pas obtenir le nom de la table), mais les variables suivantes peuvent être utilisées :
@HTTP_HOST@
- Hôte HTTP exécutant phpMyAdmin
@SERVER@
- Nom du serveur MySQL
@VERBOSE@
- Nom complet du serveur MySQL tel qu’indiqué dans la
$cfg['Servers'][$i]['verbose']
@VSERVER@
- Nom complet du serveur MySQL si défini, sinon normal
@DATABASE@
- Base de données actuellement ouverte
@TABLE@
- Table actuellement ouverte
@COLUMNS@
- Colonnes de la table actuellement ouverte
@PHPMYADMIN@
- Version de phpMyAdmin
6.28 (retiré).¶
6.29 Pourquoi ne puis-je obtenir un graphique à partir de ma table des résultats de requêtes ?¶
Toutes les tables ne peuvent pas permettre la création d’un graphique. Seules les tables ayant une, deux ou trois colonnes peuvent être visualisées sous forme de graphique. De plus, la table doit être dans un format spécial pour que le script de création de graphique la comprenne. Les formats actuellement supportés sont disponibles sur Tableaux.
6.30 Import : Comment puis-je importer des fichiers ESRI Shapefiles ?¶
Un fichier ESRI Shapefile est en fait un ensemble de fichiers dans lesquels .shp contient les données de géométrie et .dbf les données relatives à ces données de géométrie. Pour lire les données du fichier .dbf, PHP doit être compilé avec l’extension dBase (–enable-dbase). Sans quoi, seules données de géométrie seront importées.
Pour uploader ces ensembles de fichiers, vous pouvez utiliser une des méthodes suivantes :
Configurer le répertoire d’upload avec $cfg['UploadDir']
, uploader les deux fichiers .shp et .dbf avec le même nom et choisir le fichier .shp dans la page d’import.
Créer une archive zip avec les fichiers .shp et .dbf et l’importer. Pour que cela fonctionne, vous devez définir $cfg['TempDir']
dans un répertoire où l’utilisateur du serveur Web à des droits d’écriture (par exemple './tmp'
).
Pour créer un répertoire temporaire sur un système basé sur UNIX, vous pouvez faire ceci :
cd phpMyAdmin
mkdir tmp
chmod o+rwx tmp
6.31 Comment créer une relation dans le Concepteur ?¶
La colonne descriptive est montrée en rose. Pour indiquer qu’une colonne est ou n’est plus la colonne descriptive, cliquer l’icône « Colonne descriptive », puis cliquer sur le nom de colonne approprié.
6.32 Comment puis-je utiliser la fonctionnalité zoom de recherche ?¶
La fonctionnalité de recherche Zoom est une alternative à la fonctionnalité de recherche dans les tables. Elle permet d’explorer une table en représentant ses données dans un diagramme de dispersion. Vous pouvez localiser cette fonctionnalité en sélectionnant une table et en cliquant sur l’onglet Recherche. Un des sous-onglets de cette page est l’option Recherche zoom.
Considérons la table REL_persons dans 6.6 Comment puis-je utiliser la table relation dans Query-by-example ? par exemple. Pour utiliser la recherche Zoom, deux colonnes doivent être sélectionnées, par exemple, id et town_code. Les valeurs id seront représentées sur un axe et les valeurs town_code sur l’autre. Chaque ligne sera représentée comme un point dans le diagramme de dispersion basée sur son id et town_code. Vous pouvez ajouter deux critères de recherche additionnels en plus des deux champs à afficher.
Vous pouvez choisir le libellé des champs à afficher pour chaque point. Si une colonne à afficher a été définie pour une table (voir 6.7 Comment puis-je utiliser la fonctionnalité « Colonnes à afficher » ?), elle est prise comme libellé à moins de spécifier autre chose. Vous pouvez aussi sélectionner le maximum de lignes que vous voulez voir affichées dans le diagramme en l’indiquant dans le champ “Nombre maximum de lignes à représenter”. Quand vos choix sont terminés, cliquez sur “Exécuter” pour afficher le diagramme.
Quand le diagramme a été généré, vous pouvez utiliser la molette de la souris pour zoomer dans le diagramme. De plus, la fonctionnalité panorama est activée pour naviguer dans le diagramme. Vous pouvez zoomer jusqu’à un certain niveau de détails puis utiliser le panorama pour vous rendre sur la zone qui vous intéresse. Cliquer sur un point ouvre une boîte de dialogue qui affiche les données de l’enregistrement représenté par le point. Vous pouvez éditer ces valeurs si nécessaire et cliquer sur Soumettre pour créer une requête de mise à jour. Des instructions basiques sur la façon d’utiliser cette fonctionnalité peuvent être affichées en cliquant sur le lien « Comment utiliser ? » situé au-dessus du diagramme.
6.33 Lors de la navigation dans une table, comment puis-je copier un nom de colonne ?¶
Sélectionner le nom d’une colonne dans la cellule d’en-tête de table pour le copier est difficile, car les colonnes peuvent être ordonnées en déplaçant les cellules d’en-têtes ou en cliquant sur le nom de la colonne qui est un lien. Pour copier un nom de colonne, faites un double clic dans une zone vide à côté du nom de la colonne quand une infobulle vous le propose. Cela affichera une boîte de saisie avec le nom de la colonne. Vous pourrez alors copier dans le presse-papiers le nom de la colonne à partir de cette boîte.
6.34 Comment utiliser la fonctionnalité de Tables préférées ?¶
La fonctionnalité de Tables préférées est très semblable à celle des Tables récentes. Elle permet d’ajouter un raccourci pour les tables les plus fréquemment utilisées de n’importe quelle base de données dans le panneau de navigation. Vous pouvez naviguer facilement dans n’importe quelle table en cliquant simplement sur celle-ci dans la liste. Ces tables sont stockées dans le stockage local de votre navigateur si vous n’avez pas configuré le Stockage de configuration de phpMyAdmin. Sinon, ces entrées sont stockées dans Stockage de configuration de phpMyAdmin.
IMPORTANT : En l’absence de Stockage de configuration de phpMyAdmin, la liste des tables préférées peut varier en fonction du navigateur et de l’ordinateur que vous utilisez.
Pour ajouter une table à la liste, cliquer sur l’étoile grise située devant le nom de la table dans la liste des tables d’une base de données. Celle-ci deviendra alors jaune. Pour supprimer une table de la liste, cliquer sur l’étoile jaune qui deviendra alors grise.
En utilisant $cfg['NumFavoriteTables']
dans votre fichier config.inc.php
, vous pourrez définir le nombre maximum de tables affichées dans le panneau de navigation. La valeur par défaut est 10.
6.35 Comment puis-je utiliser la fonctionnalité de recherche en intervalles ?¶
À l’aide de la fonctionnalité de recherche en intervalle, vous pouvez indiquer un ensemble de valeurs pour une (des) colonne(s) particulière(s) lors d’une recherche sur une table à partir de l’onglet « Recherche ».
Pour utiliser cette fonctionnalité, cliquer sur les opérateurs BETWEEN ou NOT BETWEEN dans la liste des opérateurs devant le nom de la colonne. En choisissant une des options ci-dessus, une boîte de dialogue s’ouvrira demandant la valeur minimale et maximale pour cette colonne. Seules les valeurs de cet intervalle seront incluses dans le résultat dans le cas de l’opérateur BETWEEN ou exclues dans le cas de l’opérateur NOT BETWEEN.
Note : La fonctionnalité de recherche en intervalle ne fonctionnera que sur des colonnes de type Numeric ou Date.
6.36 Que sont les colonnes centrales et comment utiliser cette fonctionnalité ?¶
Comme le suggère son nom, la fonctionnalité de colonnes centrales active la maintenance d’une liste centrale de colonnes par base de données pour éviter des noms similaires pour les mêmes éléments de données et apporte de la cohérence au type de données pour les mêmes éléments de données. Vous pouvez utiliser cette liste centralisée pour ajouter un élément à n’importe quelle structure de table dans cette base de données ce qui vous épargnera de saisir des noms de colonnes ou des définitions de colonnes similaires.
Pour ajouter une colonne à la liste centralisée, rendez-vous sur la page de structure de table, cochez les colonnes que vous voulez inclure et cliquez sur « Ajouter aux colonnes centrales ». Si vous voulez ajouter toutes les colonnes uniques à partir de plus d’une table, rendez-vous sur la page de structure de base de données, cochez les tables que vous voulez inclure, puis sélectionnez « Ajouter les colonnes à la liste centrale ».
Pour supprimer une colonne de la liste centralisée, rendez-vous sur la page de structure de table, cochez les colonnes que vous voulez retirer, puis cliquez sur « Supprimer des colonnes centrales ». Si vous voulez retirer toutes les colonnes de plus d’une table, rendez-vous sur la page structure de base de données, cochez les tables que vous voulez inclure, puis sélectionner « Supprimer les colonnes de la liste centralisée ».
Pour afficher et gérer la liste centralisée, sélectionnez la base de données pour laquelle vous voulez gérer les colonnes centrales, puis, à partir du menu supérieur, cliquez sur « Colonnes centrales ». Vous serez alors dirigé vers une page où vous pourrez modifier, supprimer ou ajouter de nouvelles colonnes.
6.37 Comment puis-je utiliser la fonctionnalité Améliorer la structure de table ?¶
La fonctionnalité Améliorer la structure de table aide à transformer la structure en troisième forme normale. Un assistant est présenté à l’utilisateur et pose des questions sur les éléments dans plusieurs étapes pour la normalisation, et une nouvelle structure est proposée pour transformer la table en première, deuxième ou troisième forme normale. Au démarrage, l’assistant demande à l’utilisateur jusqu’à quel niveau de forme normale il veut normaliser sa table.
Voici un exemple de table que vous pouvez utiliser pour tester les trois formes normales.
CREATE TABLE `VetOffice` (
`petName` varchar(64) NOT NULL,
`petBreed` varchar(64) NOT NULL,
`petType` varchar(64) NOT NULL,
`petDOB` date NOT NULL,
`ownerLastName` varchar(64) NOT NULL,
`ownerFirstName` varchar(64) NOT NULL,
`ownerPhone1` int(12) NOT NULL,
`ownerPhone2` int(12) NOT NULL,
`ownerEmail` varchar(64) NOT NULL,
);
La table ci-dessus n’est pas en première forme normale car il n’y a pas de primary key. La clé primaire est supposée être (petName,`ownerLastName`,`ownerFirstName`). Si la primary key est choisie comme suggéré, la table résultante ne sera pas en deuxième ni en troisième forme normale car les dépendances suivantes existent.
(OwnerLastName, OwnerFirstName) -> OwnerEmail
(OwnerLastName, OwnerFirstName) -> OwnerPhone
PetBreed -> PetType
C’est-à-dire : OwnerEmail dépend de OwnerLastName et OwnerFirstName. OwnerPhone dépend de OwnerLastName et OwnerFirstName. PetType dépend de PetBreed.
6.38 Comment puis-je réaffecter les valeurs auto-incrémentées ?¶
Certains utilisateurs préfèrent que leurs valeurs AUTO_INCREMENT soient consécutives ; ce n’est pas toujours le cas après la suppression de lignes.
Voici les étapes pour y parvenir. Ce sont des étapes manuelles parce qu’elles comportent une vérification manuelle à un moment donné.
- Vérifiez que vous disposez d’un accès exclusif à la table devant être réorganisée
- Sur votre colonne de primary key par exemple id), supprimez le paramètre AUTO_INCREMENT
- Supprimer votre clé primaire dans Structure > index
- Créer une nouvelle colonne future_id comme clé primaire, AUTO_INCREMENT
- Parcourez votre table et vérifiez que les nouveaux incréments correspondent à votre attente
- Supprimez votre ancienne colonne id
- Renommez la colonne future_id en id
- Déplacer la nouvelle colonne id via Structure > Déplacer des colonnes
6.39 Quelle est l’option « Ajuster les privilèges » présente dans les dialogues de renommage, de copie ou de déplacement de base de données, de table, de colonne ou de procédure ?¶
Lors du renommage, de la copie ou du déplacement d’une base de données, d’une table, d’une colonne ou d’une procédure, MySQL n’ajuste pas par lui-même les privilèges originaux relatifs à ces objets. En choisissant cette option, phpMyAdmin effectuera un ajustement des privilèges afin que les utilisateurs obtiennent les mêmes privilèges sur les nouveaux éléments.
Par exemple : un utilisateur “bob”@”localhost a un privilège « SELECT » sur une colonne nommée « id ». Maintenant, si cette colonne est renommée en « id_new » , MySQL, par lui-même, n’ajusterait pas les privilèges de colonne vers le nouveau nom de colonne. phpMyAdmin peut faire cet ajustement pour vous automatiquement.
Notes :
- Lors de l’ajustement des privilèges pour une base de données, les privilèges de tous les éléments liés à la base de données (tables, colonnes et procédures) sont également ajustés au nouveau nom de la base de données.
- De même, tout en ajustant les privilèges d’une table, les privilèges de toutes les colonnes à l’intérieur de la nouvelle table sont également ajustés.
- Lors de l’ajustement des privilèges, l’utilisateur qui effectue l’opération ** doit ** posséder les privilèges suivants :
- Les privilèges SELECT, INSERT, UPDATE, DELETE sur les tables suivantes : mysql.`db`, mysql.`columns_priv`, mysql.`tables_priv`, mysql.`procs_priv`
- Privilège FLUSH (GLOBAL)
Ainsi, si vous voulez répliquer la base de données/table/colonne/procédure telle quelle pendant le renommage/la copie/le déplacement de ces objets, assurez-vous que vous avez activé cette option.
6.40 Je vois la case à cocher « Lier les paramètres » dans la page « SQL ». Comment puis-je écrire des requêtes SQL paramétrées ?¶
Depuis la version 4.5, phpMyAdmin permet aux utilisateurs d’exécuter des requêtes paramétrées dans la page « SQL ». Les paramètres doivent être préfixés d’un deux-points (:), et lorsque la case « Lier les paramètres » est cochée, ces paramètres seront identifiés et des champs de saisie pour ces paramètres seront présentés. Les valeurs entrées dans ces champs seront substituées dans la requête avant son exécution.
6.41 Je reçois des erreurs d’importation lors de l’importation des dumps exportées depuis les anciennes versions de MySQL (antérieures à 5.7.6) vers les nouvelles versions de MySQL (5.7.7+), mais elles fonctionnent correctement lorsqu’elles sont importées sur les mêmes anciennes versions ?¶
Si vous avez des erreurs comme #1031 - Le moteur de table de table pour “table_name” n’a pas cette option lors de l’importation des dumps exportées depuis les serveurs MySQL pré-5.7.7 vers les nouvelles versions du serveur MySQL 5.7.7+, c’est peut-être parce que ROW_FORMAT=FIXED n’est pas pris en charge avec les tables InnoDB. De plus, la valeur de innodb_strict_mode définirait si cela serait signalé comme un avertissement ou comme une erreur.
Depuis MySQL version 5.7.9, la valeur par défaut de innodb_strict_mode est` ON` et génère donc une erreur lorsqu’une instruction CREATE TABLE ou ALTER TABLE est rencontrée.
Il existe deux façons de prévenir ces erreurs lors de l’importation :
- Changez la valeur de innodb_strict_mode sur` OFF` avant de lancer l’importation et activez-la ON une fois l’importation terminée avec succès.
- Cela peut être réalisé de deux façons :
- Allez à la page “Variables” et modifiez la valeur de innodb_strict_mode
- Exécuter la requête : SET GLOBAL `innodb_strict_mode = “[value]”`
Une fois l’importation terminée, il est suggéré que la valeur de innodb_strict_mode soit réinitialisée à la valeur d’origine.
Projet phpMyAdmin¶
7.1 J’ai trouvé un bogue. Comment dois-je en informer les développeurs ?¶
Notre logiciel de suivi de problèmes est situé sur <https://github.com/phpmyadmin/phpmyadmin/issues>. Pour des problèmes de sécurité, veuillez suivre les instructions sur <https://www.phpmyadmin.net/security> pour envoyer un courriel directement aux développeurs.
7.2 Je veux traduire les messages dans une nouvelle langue ou mettre à jour une langue existante, où dois-je commencer ?¶
Les traductions sont les bienvenues et tout ce dont vous avez besoin est de maîtriser la langue. La manière la plus facile est d’utiliser notre <https://hosted.weblate.org/projects/phpmyadmin/>`_. Vous pouvez consulter toutes les possibilités de traduction dans la section traduction de notre site Web.
7.3 Je voudrais aider au développement de phpMyAdmin. Comment dois-je procéder ?¶
Nous accueillons volontiers toute contribution au développement de phpMyAdmin. Vous pouvez consulter toutes les possibilités pour contribuer dans la section contribuer de notre site Web.
Voir aussi
Sécurité¶
8.1 Où puis-je obtenir des informations sur les alertes de sécurité pour phpMyAdmin ?¶
Veuillez consulter <https://www.phpmyadmin.net/security/>.
8.2 Comment protéger phpMyAdmin contre les attaques par force brute ?¶
Si vous utilisez un serveur Web Apache, phpMyAdmin exporte les informations sur l’authentification vers l’environnement Apache et peut être utilisé dans les logs d’Apache. Il y a actuellement deux variables disponibles :
userID
- Le nom de l’utilisateur actif en cours (ils n’ont pas besoin d’être connectés).
userStatus
- L’état de l’utilisateur actif en cours, soit
ok
(l’utilisateur est connecté), soitmysql-denied
(MySQL a refusé la connexion de l’utilisateur), soitallow-denied
(l’utilisateur a été rejeté par les règles allow/deny), soitroot-denied
(root est refusé dans la configuration), soitempty-denied
(les mots de passe vides sont interdits).
La directive LogFormat
pour Apache peut ressembler à ce qui suit :
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
Vous pouvez alors utiliser n’importe quel outil d’analyse de logs pour détecter des tentatives d’intrusion.
8.3 Pourquoi le chemin d’accès au fichier est-il affiché lors du téléchargement de certains fichiers ?¶
Ceci est dû à un problème de configuration du serveur. Ne jamais activer display_errors
sur un site de production.
8.4 Les fichiers CSV exportés à partir de phpMyAdmin pourraient permettre une attaque par injection de formule.¶
Il est possible de générer un fichier CSV qui, lorsqu’il est importé dans un programme de tableur comme Microsoft Excel, pourrait potentiellement permettre l’exécution de commandes arbitraires.
Les fichiers CSV générés par phpMyAdmin pourraient potentiellement contenir du texte qui serait interprété par un programme de traitement de texte comme une formule, mais nous ne pensons pas que d’échapper ces champs soient une solution correcte. Il n’existe aucun moyen d’échapper correctement ces champs et de différencier du texte légitime d’une formule qui devrait être échappée, et CSV est un format de texte ou les définitions de fonctions ne devraient pas être interprétées de toutes façons. Nous en avons longuement discuté et il nous semble qu’il est de la responsabilité du programme de tableur d’analyser et d’assainir correctement ce type de données.
Google a un point de vue similaire.
Informations pour les développeurs¶
phpMyAdmin est un logiciel Open Source, aussi vous êtes invités à y contribuer. Beaucoup de fonctionnalités ont été écrites par d’autres personnes et vous aussi vous pouvez aider à faire de phpMyAdmin un outil utile.
Vous pouvez consulter toutes les possibilités pour contribuer dans la section contribuer de notre site Web.
Politique de sécurité¶
L’équipe de développement de phpMyAdmin a beaucoup travaillé pour rendre phpMyAdmin aussi sûr que possible. Mais une application Web comme phpMyAdmin peut toujours être vulnérable à une attaque et de nouvelles façons d’attaquer sont continuellement inventées.
Pour chaque vulnérabilité rapportée, une annonce de sécurité phpMyAdmin Security Announcement (PMASA) est établie et pour laquelle est assignée un ID CVE. Plusieurs vulnérabilités similaires peuvent être regroupées dans un seul PMASA (par ex. plusieurs vulnérabilités XSS peuvent être annoncées sous un seul PMASA).
En cas de découverte d’une vulnérabilité, merci de consulter Rapporter des problèmes de sécurité.
Vulnérabilité typique¶
Dans cette section seront décrites les vulnérabilités typiques qui peuvent survenir dans le code source. Cette liste n’est pas exhaustive, elle a pour but de montrer la surface d’attaque typique.
Cross-site scripting (XSS)¶
Quand phpMyAdmin affiche des données utilisateurs, par ex. provenant d’une base de données utilisateur, tous les caractères spéciaux HTML doivent être échappés. Sinon un utilisateur malicieux pourrait remplir la base avec du contenu spécial pour tromper un autre utilisateur de cette même base et exécuter du code arbitraire. Par ex. du JavaScript qui pourrait faire à peu près n’importe quoi.
phpMyAdmin essaie d’échapper toutes les données utilisateur avant qu’elles soient affichées en HTML dans le navigateur.
Voir aussi
Cross-site request forgery (CSRF)¶
Un attaquant pourrait tromper un utilisateur de phpMyAdmin qui cliquerait sur un lien pour provoquer une action dans phpMyAdmin. Ce lien pourrait être envoyé par courriel ou un site quelconque. En cas de succès, cet attaquant pourrait effectuer des actions avec les privilèges utilisateur.
Pour limiter ce problème, phpMyAdmin requiert d’envoyer un jeton sur les sites sensibles. L’idée est qu’un attaquant ne possède pas le jeton actuellement valide pour l’inclure dans le lien présenté.
Le jeton est régénéré à chaque connexion, ce qui fait qu’il n’est généralement valide qu’un temps limité et le rend difficile à obtenir par un attaquant.
Voir aussi
Injection SQL¶
Comme le but de phpMyAdmin est d’effectuer des requêtes SQL, ceci ne le concerne pas principalement. L’injection SQL concerne phpMyAdmin à la connexion de contrôle MySQL. Cette connexion de contrôle peut avoir des privilèges supplémentaires que l’utilisateur connecté ne possède pas. Par ex. pour accéder aux Stockage de la configuration de phpMyAdmin.
Les données utilisateur qui sont incluses dans les requêtes (administratives) devraient toujours être exécutées à travers DatabaseInterface::escapeString().
Voir aussi
Attaque par force brute¶
phpMyAdmin ne limite pas le nombre d’essais pour l’authentification parce que phpMyAdmin fonctionne en mode sans état (stateless) pour lequel il n’existe aucune manière de protéger contre ce type de choses.
Pour limiter ceci, il est possible d’utiliser un Captcha ou des outils externes comme fail2ban. Plus de détails sont fournis à Sécuriser votre installation de phpMyAdmin.
Voir aussi
Rapporter des problèmes de sécurité¶
En cas de découverte d’un problème de sécurité dans le code de phpMyAdmin, merci de contacter l’équipe de sécurité de phpMyAdmin avant de le rendre public. Une correction pourra être préparée et rendue publique avec votre annonce. Vous serez aussi crédité dans notre bulletin de sécurité. Votre rapport de sécurité peut être optionnellement chiffré avec l’ID de clé PGP DA68AB39218AB947
et l’empreinte suivante :
pub 4096R/DA68AB39218AB947 2016-08-02
Key fingerprint = 5BAD 38CF B980 50B9 4BD7 FB5B DA68 AB39 218A B947
uid phpMyAdmin Security Team <security@phpmyadmin.net>
sub 4096R/5E4176FB497A31F7 2016-08-02
La clé peut soit être obtenue du serveur de clés soit est disponible dans le magasin de clés de phpMyAdmin sur le serveur de téléchargement soit en utilisant Keybase.
En cas de suggestion pour améliorer la sécurité de phpMyAdmin, merci de soumettre un rapport au gestionnaire de problèmes à. Les suggestions d’améliorations existantes se trouvent sous le libellé « hardening » à.
Distribuer et packager phpMyAdmin¶
Ce document est destiné à donner des morceaux de conseil aux personnes qui veulent redistribuer phpMyAdmin dans d’autres paquets logiciels telle qu’une distribution Linux ou des paquets tout en un contenant un serveur Web et un serveur MySQL.
Généralement, vous pouvez personnaliser certains aspects basiques (chemins d’accès vers certains fichiers et comportement) dans libraries/vendor_config.php
.
Par exemple, si vous voulez paramétrer un script pour générer un fichier de config dans var, modifier SETUP_CONFIG_FILE
en /var/lib/phpmyadmin/config.inc.php
et vous voudrez aussi probablement passer outre la vérification de répertoire accessible en écriture en paramétrant SETUP_DIR_WRITABLE
à « false ».
Bibliothèques externes¶
phpMyAdmin inclut plusieurs bibliothèques externes, vous pourriez vouloir les remplacer par celles du système si elles sont disponibles, mais veuillez noter que vous devrez tester si la version que vous fournissez sont compatibles avec celles que nous distribuons.
Liste actuelle des bibliothèques externes :
- js/vendor
- Les bibliothèques du framework Javascript jQuery et diverses bibliothèques.
- vendor/
- Le kit de téléchargement contient divers paquets de dépendances de Composer.
Licences de fichiers spécifiques¶
Les thèmes distribués dans phpMyAdmin contiennent du contenu sous licence.
- Les icônes des thèmes Original et pmahomme proviennent du site Silk Icons.
- Certaines icônes du thème Metro proviennent du site Silk Icons.
- themes/*/img/b_rename.svg Est une Icons8, icône du pack Android L Icon Pack Collection. L’icône rename.
- themes/metro/img/user.svg Est un IcoMoon : user
CC BY 4.0 ou GPL
Licences pour les fournisseurs¶
- Les icônes Silk sont sous les licences CC BY 2.5 ou CC BY 3.0.
- rename de Icons8 est sous licence « public domain » license (CC0 1.0).
- IcoMoon Free est sous « CC BY 4.0 ou GPL » <https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt>`_.
Copyright¶
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
Copyright (C) 2001-2018 Marc Delisle <marc_at_infomarc.info>
Olivier Müller <om_at_omnis.ch>
Robin Johnson <robbat2_at_users.sourceforge.net>
Alexander M. Turek <me_at_derrabus.de>
Michal Čihař <michal_at_cihar.com>
Garvin Hicking <me_at_supergarv.de>
Michael Keck <mkkeck_at_users.sourceforge.net>
Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
[check credits for more details]
Ce programme est libre ; il peut être redistribué et/ou modifié selon les termes de la GNU General Public License version 2, telle que publiée par la Free Software Foundation.
Ce programme est distribué dans l’espoir qu’il puisse être utile, mais SANS GARANTIES ; sans aucune GARANTIE IMPLICITE DE QUALITÉ MARCHANDE ou de CONVENANCE À UN USAGE PARTICULIER. Voir la GNU General Public License pour plus de détails.
Une copie de la GNU General Public License devrait accompagner ce programme. Sinon, conculter <https://www.gnu.org/licenses/>.
Licences tierces parties¶
phpMyAdmin inclue plusieurs bibliothèques tierces parties possédant leurs licences propres.
La licence de jQuery est MIT|GPL (fichiers sous js/vendor/jquery/). Une copie de chaque licence est disponible dans ce dossier (GPL est disponible sous LICENSE, MIT sous js/vendor/jquery/MIT-LICENSE.txt).
Le kit de téléchargement inclue en plus plusieurs bibliothèques de composition. Consulter leurs informations de licence dans le dossier vendor/.
Crédits¶
Crédits, par ordre chronologique¶
- Tobias Ratschiller <tobias_at_ratschiller.com>
- créateur du projet phpMyAdmin
- mainteneur de 1998 à l’été 2000
- Marc Delisle <marc_at_infomarc.info>
- version multilingue de décembre 1998
- diverses corrections et améliorations
- première version de l’analyseur SQL (la plupart)
- mainteneur de 2001 à 2015
- Olivier Müller <om_at_omnis.ch>
- a démarré le projet sur Sourceforge en mars 2001
- a synchronisé différents dépôts CVS avec de nouvelles fonctionnalités et corrections de bogues
- améliorations du système multilingue, sélection dynamique de la langue
- beaucoup de corrections de bogues et d’améliorations
- Loïc Chapeaux <lolo_at_phpheaven.net>
- ré-écriture et optimisation JavaScript, DHTML et DOM
- ré-écriture des scripts PEAR pour s’adapter aux standards de codage et génération de codes conformes XHTML1.0 et CSS2
- amélioration du système de détection de langue
- beaucoup de corrections de bogues et d’améliorations
- Robin Johnson <robbat2_at_users.sourceforge.net>
- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
- fonctionnalité des signets
- fonctionnalité de listage multiple
- fonctionnalité de listage GZip
- fonctionnalité de listage Zip
- Geert Lund <glund_at_silversoft.dk>
- diverses corrections
- modérateur du précédent forum utilisateurs de phpMyAdmin sur phpwizard.net
- Korakot Chaovavanich <korakot_at_iname.com>
- fonctionnalité « insérer comme une nouvelle ligne »
- Pete Kelly <webmaster_at_trafficg.com>
- ré-écriture et correction du code de listage
- corrections de bogue
- Steve Alberty <alberty_at_neptunlabs.de>
- ré-écriture du code de listage pour PHP4
- statistiques sur les tables MySQL
- corrections de bogue
- Benjamin Gandon <gandon_at_isia.cma.fr>
- auteur principal de la version 2.1.0.1
- corrections de bogue
- Alexander M. Turek <me_at_derrabus.de>
- compatibilité MySQL 4.0 / 4.1 / 5.0
- interface d’abstraction de base de données (PMA_DBI) avec support MySQLi
- administration des privilèges
- exportations XML
- diverses fonctionnalités et corrections
- mises à jour du fichier de langue allemand
- Mike Beck <mike.beck_at_web.de>
- jointures automatiques dans QBE
- mise en lien des colonnes dans printview
- Vue relationnelle
- Michal Čihař <michal_at_cihar.com>
- fonctionnalité de création et d’affichage améliorés d’index
- fonctionnalité pour utiliser un jeu de caractères différent de celui de MySQL pour l’HTML
- améliorations de la fonctionnalité d’export
- diverses fonctionnalités et corrections
- mises à jour du fichier de langue tchèque
- a créé le site Web actuel pour phpMyAdmin
- Christophe Gesché pour « MySQL Form Generator for PHPMyAdmin » (https://sourceforge.net/projects/phpmysqlformgen/)
- a suggéré le correctif pour l’affichage de table multiple
- Garvin Hicking <me_at_supergarv.de>
- correctif pour l’affichage vertical des lignes de table
- fenêtre de requête JavaScript + historique SQL
- améliorations des commentaires de colonnes et de bases de données
- transformations MIME pour les colonnes
- utilisation d’alias personnalisés pour les bases de données dans le cadre de gauche
- affichage des tables hiérarchiques/imbriquées
- panneau PDF pour la distribution WYSIWYG des relations PDF
- nouveau jeu d’icônes
- affichage vertical de la colonne propriétés de la page
- corrections de bogues, fonctionnalités, assistance, ajout pour l’allemand
- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
- fonctionnalité de conversion d’encodage kanji japonais
- Piotr Roszatycki <d3xter_at_users.sourceforge.net> et Dan Wilson
- Mode d’authentification « cookie »
- Axel Sander <n8falke_at_users.sourceforge.net>
- fonctionnalité relations-liens de table
- Maxime Delorme <delorme.maxime_at_free.fr>
- sortie de schéma PDF, merci aussi à Olivier Plathey pour la bibliothèque « FPDF » (voir <http://www.fpdf.org/>), Steven Wittens pour la bibliothèque « UFPDF » et Nicola Asuni pour la bibliothèque « TCPDF » (voir <https://tcpdf.org/>).
- Olof Edlund <olof.edlund_at_upright.se>
- serveur validateur SQL
- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
- logo phpMyAdmin (jusqu’à juin 2004)
- Mike Cochrane <mike_at_graftonhall.co.nz>
- bibliothèque Blowfish du projet Horde (retiré dans la version 4.0)
- Marcel Tschopp <ne0x_at_users.sourceforge.net>
- support MySQLi
- beaucoup de corrections de bogues et d’améliorations
- Nicola Asuni (Tecnick.com)
- Bibliothèque TCPDF (<https://tcpdf.org>)
- Michael Keck <mkkeck_at_users.sourceforge.net>
- re-conception pour la version 2.6.0
- logo bateau à voile de phpMyAdmin (juin 2004)
- Mathias Landhäußer
- représentation à des conférences
- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
- améliorations de l’interface
- diverses corrections de bogues
- Ivan A Kirillov
- nouveau Concepteur de relations
- Raj Kissu Rajandran (Google Summer of Code 2008)
- support BLOBstreaming (retiré dans la version 4.0)
- Piotr Przybylski (Google Summer of Code 2008, 2010 et 2011)
- amélioration du script d’installation
- préférences utilisateur
- Support Drizzle
- Derek Schaefer (Google Summer of Code 2009)
- amélioration du système d’import
- Alexander Rutkowski (Google Summer of Code 2009)
- Mécanisme de suivi
- Zahra Naeem (Google Summer of Code 2009)
- Fonctionnalité de synchronisation (retiré dans la version 4.0)
- Tomáš Srnka (Google Summer of Code 2009)
- Gestion de la réplication
- Muhammad Adnan (Google Summer of Code 2010)
- Export de schémas relationnels sous plusieurs formats
- Lori Lee (Google Summer of Code 2010)
- améliorations de l’interface utilisateur
- Éditeur ENUM/SET
- Interface simplifiée pour l’export/import
- Ninad Pundalik (Google Summer of Code 2010)
- AJAXification de l’interface
- Martynas Mickevičius (Google Summer of Code 2010)
- Tableaux
- Barrie Leslie
- support BLOBstreaming avec l’extension PBMS PHP (retiré dans la version 4.0)
- Ankit Gupta (Google Summer of Code 2010)
- Constructeur visuel de requête
- Madhura Jayaratne (Google Summer of Code 2011)
- support OpenGIS
- Ammar Yasir (Google Summer of Code 2011)
- Recherche par zoom
- Aris Feryanto (Google Summer of Code 2011)
- Améliorations du mode Browse
- Thilanka Kaushalya (Google Summer of Code 2011)
- AJAXification
- Tyron Madlener (Google Summer of Code 2011)
- Statistiques et graphiques de requête pour la page d’état
- Zarubin Stas (Google Summer of Code 2011)
- Test automatisé
- Rouslan Placella (Google Summer of Code 2011 et 2012)
- Support amélioré pour les routines stockées, les déclencheurs et les événements
- mises à jour de la traduction italienne
- Retrait des frames, nouvelle navigation
- Dieter Adriaenssens
- diverses corrections de bogues
- mises à jour de la traduction néerlandaise
- Alex Marin (Google Summer of Code 2012)
- Nouveaux plugins et système des propriétés
- Thilina Buddika Abeyrathna (Google Summer of Code 2012)
- Refactorisation
- Atul Pratap Singh (Google Summer of Code 2012)
- Refactorisation
- Chanaka Indrajith (Google Summer of Code 2012)
- Refactorisation
- Yasitha Pandithawatta (Google Summer of Code 2012)
- Test automatisé
- Jim Wigginton (phpseclib.sourceforge.net)
- phpseclib
- Bin Zu (Google Summer of Code 2013)
- Refactorisation
- Supun Nakandala (Google Summer of Code 2013)
- Refactorisation
- Mohamed Ashraf (Google Summer of Code 2013)
- Rapport d’erreur AJAX
- Adam Kang (Google Summer of Code 2013)
- Test automatisé
- Ayush Chaudhary (Google Summer of Code 2013)
- Test automatisé
- Kasun Chathuranga (Google Summer of Code 2013)
- Améliorations de l’interface
- Hugues Peccatte
- Enregistrement et chargement de Query by example (marque-pages de recherche de base de données)
- Smita Kumari (Google Summer of Code 2014)
- Liste centralisée des colonnes
- Améliorer la structure de table (normalisation)
- Ashutosh Dhundhara (Google Summer of Code 2014)
- Améliorations de l’interface
- Chanaka Indrajith (Google Summer of Code 2012)
- Rapport d’erreur PHP
- Adam Kang (Google Summer of Code 2013)
- Console de requête SQL
- Kankanamge Bimal Yashodha (Google Summer of Code 2014)
- Remaniement : Intégration du Concepteur/schéma
- Chirayu Chiripal (Google Summer of Code 2014)
- Gestionnaires de champ personnalisé (transformations MIME des saisies)
- Exporter avec changements de nom de table/colonne
- Dan Ungureanu (Google Summer of Code 2015)
- Nouvel analyseur syntaxique
- Nisarg Jhaveri (Google Summer of Code 2015)
- Paramètres relatifs à la page
- Intégration à la Console du débogage SQL
- Autres améliorations de l’interface
- Deven Bansod (Google Summer of Code 2015)
- Version imprimable (CSS)
- Autres améliorations de l’interface et nouvelles fonctionnalités
- Deven Bansod (Google Summer of Code 2017)
- Améliorations du serveur de rapport d’erreurs
- Testage de Selenium amélioré
- Manish Bisht (Google Summer of Code 2017)
- Interface utilisateur mobile
- Supprimer le code JavaScript en ligne
- Autres améliorations de l’interface
- Raghuram Vadapalli (Google Summer of Code 2017)
- Interface de demande multi-tables
- Permet au concepteur de travailler avec des tables provenant d’autres bases de données
- Autres améliorations de l’interface
- Maurício Meneghini Fauth
- Améliorations majeures et mise à jour dans le cœur JavaScript
- Modernisation des fonctionnalités des bibliothèques JavaScript
- Modernisation des gabarits et introduction de Twig
- William Desportes
- Améliorations du style de codage basé sur PHPStan
- Amélioration des liens vers la documentation externe de MySQL et de MariaDB
- De nombreuses autres corrections de bogues
- Emanuel Bronshtein
- Évaluation complète de la sécurité et suggestions
- Lakshya Arora (Google Summer of Code 2018)
- Diverses améliorations incluant :
- Intégration des préférences utilisateur avec le stockage local
- Utilisation d’une connexion modale après l’expiration de la session
- Ajout de la prise en charge de CHECK CONSTRAINTS
- et plus encore !
- Diverses améliorations incluant :
- Saksham Gupta (Google Summer of Code 2018)
- Outil de génération automatique de thèmes
- Leonardo Strozzi (Google Summer of Code 2018)
- Refonte des gabarits Twig et autres améliorations du code interne
- Piyush Vijay (Google Summer of Code 2018)
- Modernisation du code JavaScript, y compris en introduisant Webpack, Babel et Yarn, ainsi que eslint et Jsdoc
et aussi les personnes qui ont contribué à des changements, améliorations, corrections de bogues ou support d’une nouvelles langues, mineurs, 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 ».
Traducteurs¶
Les personnes suivantes ont contribué à la traduction de phpMyAdmin :
Albanais
- Arben Çokaj <acokaj_at_shkoder.net>
Arabe
- Ahmed Saleh Abd El-Raouf Ismae <a.saleh.ismael_at_gmail.com>
- Ahmed Saad <egbrave_at_hotmail.com>
- hassan mokhtari <persiste1_at_gmail.com>
Arménien
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
Azéri
- Mircəlal <01youknowme_at_gmail.com>
- Huseyn <huseyn_esgerov_at_mail.ru>
- Sevdimali İsa <sevdimaliisayev_at_mail.ru>
- Jafar <sharifov_at_programmer.net>
Biélorusse
- Viktar Palstsiuk <vipals_at_gmail.com>
Bulgare
- Boyan Kehayov <bkehayov_at_gmail.com>
- Valter Georgiev <blagynchy_at_gmail.com>
- Valentin Mladenov <hudsonvsm_at_gmail.com>
- P <plamen_mbx_at_yahoo.com>
- krasimir <vip_at_krasio-valia.com>
Catalan
- josep constanti <jconstanti_at_yahoo.es>
- Xavier Navarro <xvnavarro_at_gmail.com>
Chinois (Chine)
- Vincent Lau <3092849_at_qq.com>
- Zheng Dan <clanboy_at_163.com>
- disorderman <disorderman_at_qq.com>
- Rex Lee <duguying2008_at_gmail.com>
- <fundawang_at_gmail.com>
- popcorner <memoword_at_163.com>
- Yizhou Qiang <qyz.yswy_at_hotmail.com>
- zz <tczzjin_at_gmail.com>
- Terry Weng <wengshiyu_at_gmail.com>
- whh <whhlcj_at_126.com>
Chinois (Taïwan)
- Albert Song <albb0920_at_gmail.com>
- Chien Wei Lin <cwlin0416_at_gmail.com>
- Peter Dave Hello <xs910203_at_gmail.com>
Kölsch
- Purodha <publi_at_web.de>
Tchèque
- Aleš Hakl <ales_at_hakl.net>
- Dalibor Straka <dalibor.straka3_at_gmail.com>
- Martin Vidner <martin_at_vidner.net>
- Ondra Šimeček <ondrasek.simecek_at_gmail.com>
- Jan Palider <palider_at_seznam.cz>
- Petr Kateřiňák <petr.katerinak_at_gmail.com>
Danois
- Aputsiaĸ Niels Janussen <aj_at_isit.gl>
- Dennis Jakobsen <dennis.jakobsen_at_gmail.com>
- Jonas <jonas.den.smarte_at_gmail.com>
- Claus Svalekjaer <just.my.smtp.server_at_gmail.com>
Néerlandais
- Voogt <a.voogt_at_hccnet.nl>
- dingo thirteen <dingo13_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Dieter Adriaenssens <ruleant_at_users.sourceforge.net>
- Niko Strijbol <strijbol.niko_at_gmail.com>
Anglais (Royaume-Uni)
- Dries Verschuere <dries.verschuere_at_outlook.com>
- Francisco Rocha <j.francisco.o.rocha_at_zoho.com>
- Marc Delisle <marc_at_infomarc.info>
- Marek Tomaštík <tomastik.m_at_gmail.com>
Espéranto
- Eliovir <eliovir_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
Estonien
- Kristjan Räts <kristjanrats_at_gmail.com>
Finnois
- Juha Remes <jremes_at_outlook.com>
- Lari Oesch <lari_at_oesch.me>
Français
- Marc Delisle <marc_at_infomarc.info>
Frison
- Robin van der Vliet <info_at_robinvandervliet.nl>
Galicien
- Xosé Calvo <xosecalvo_at_gmail.com>
Allemand
- Julian Ladisch <github.com-t3if_at_ladisch.de>
- Jan Erik Zassenhaus <jan.zassenhaus_at_jgerman.de>
- Lasse Goericke <lasse_at_mydom.de>
- Matthias Bluthardt <matthias_at_bluthardt.org>
- Michael Koch <michael.koch_at_enough.de>
- Ann + J.M. <phpMyAdmin_at_ZweiSteinSoft.de>
- <pma_at_sebastianmendel.de>
- Phillip Rohmberger <rohmberger_at_hotmail.de>
- Hauke Henningsen <sqrt_at_entless.org>
Grec
- Παναγιώτης Παπάζογλου <papaz_p_at_yahoo.com>
Hébreu
- Moshe Harush <mmh15_at_windowslive.com>
- Yaron Shahrabani <sh.yaron_at_gmail.com>
- Eyal Visoker <visokereyal_at_gmail.com>
Hindi
- Atul Pratap Singh <atulpratapsingh05_at_gmail.com>
- Yogeshwar <charanyogeshwar_at_gmail.com>
- Deven Bansod <devenbansod.bits_at_gmail.com>
- Kushagra Pandey <kushagra4296_at_gmail.com>
- Nisarg Jhaveri <nisargjhaveri_at_gmail.com>
- Roohan Kazi <roohan_cena_at_yahoo.co.in>
- Yugal Pantola <yug.scorpio_at_gmail.com>
Hongrois
- Akos Eros <erosakos02_at_gmail.com>
- Dániel Tóth <leedermeister_at_gmail.com>
- Szász Attila <undernetangel_at_gmail.com>
- Balázs Úr <urbalazs_at_gmail.com>
Indonésien
- Deky Arifianto <Deky40_at_gmail.com>
- Andika Triwidada <andika_at_gmail.com>
- Dadan Setia <da2n_s_at_yahoo.co.id>
- Dadan Setia <dadan.setia_at_gmail.com>
- Yohanes Edwin <edwin_at_yohanesedwin.com>
- Fadhiil Rachman <fadhiilrachman_at_gmail.com>
- Benny <tarzq28_at_gmail.com>
- Tommy Surbakti <tommy_at_surbakti.net>
- Zufar Fathi Suhardi <zufar.bogor_at_gmail.com>
Interlingua
- Giovanni Sora <g.sora_at_tiscali.it>
Italien
- Francesco Saverio Giacobazzi <francesco.giacobazzi_at_ferrania.it>
- Marco Pozzato <ironpotts_at_gmail.com>
- Stefano Martinelli <stefano.ste.martinelli_at_gmail.com>
Japonais
- k725 <alexalex.kobayashi_at_gmail.com>
- Hiroshi Chiyokawa <hiroshi.chiyokawa_at_gmail.com>
- Masahiko HISAKAWA <orzkun_at_ageage.jp>
- worldwideskier <worldwideskier_at_yahoo.co.jp>
Kannada
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Shameem Ahmed A Mulla <shameem.sam_at_gmail.com>
Coréen
- Bumsoo Kim <bskim45_at_gmail.com>
- Kyeong Su Shin <cdac1234_at_gmail.com>
- Dongyoung Kim <dckyoung_at_gmail.com>
- Myung-han Yu <greatymh_at_gmail.com>
- JongDeok <human.zion_at_gmail.com>
- Yong Kim <kim_at_nhn.com>
- 이경준 <kyungjun2_at_gmail.com>
- Seongki Shin <skshin_at_gmail.com>
- Yoon Bum-Jong <virusyoon_at_gmail.com>
- Koo Youngmin <youngminz.kr_at_gmail.com>
Kurde Sorani
- Alan Hilal <alan.hilal94_at_gmail.com>
- Aso Naderi <aso.naderi_at_gmail.com>
- muhammad <esy_vb_at_yahoo.com>
- Zrng Abdulla <zhyarabdulla94_at_gmail.com>
Letton
- Latvian TV <dnighttv_at_gmail.com>
- Edgars Neimanis <edgarsneims5092_at_inbox.lv>
- Ukko <perkontevs_at_gmail.com>
Limbourgeois
- Robin van der Vliet <info_at_robinvandervliet.nl>
Lituanien
- Vytautas Motuzas <v.motuzas_at_gmail.com>
Malais
- Amir Hamzah <amir.overlord666_at_gmail.com>
- diprofinfiniti <anonynuine-999_at_yahoo.com>
Népalais
- Nabin Ghimire <nnabinn_at_hotmail.com>
Norvégien, Bokmål
- Børge Holm-Wennberg <borge947_at_gmail.com>
- Tor Stokkan <danorse_at_gmail.com>
- Espen Frøyshov <efroys_at_gmail.com>
- Kurt Eilertsen <kurt_at_kheds.com>
- Christoffer Haugom <ph3n1x.nobody_at_gmail.com>
- Sebastian <sebastian_at_sgundersen.com>
- Tomas <tomas_at_tomasruud.com>
Farsi
- ashkan shirian <ashkan.shirian_at_gmail.com>
- HM <goodlinuxuser_at_chmail.ir>
Polonais
- Andrzej <andrzej_at_kynu.pl>
- Przemo <info_at_opsbielany.waw.pl>
- Krystian Biesaga <krystian4842_at_gmail.com>
- Maciej Gryniuk <maciejka45_at_gmail.com>
- Michał VonFlynee <vonflynee_at_gmail.com>
Portugais
- Alexandre Badalo <alexandre.badalo_at_sapo.pt>
- João Rodrigues <geral_at_jonilive.com>
- Pedro Ribeiro <p.m42.ribeiro_at_gmail.com>
- Sandro Amaral <sandro123iv_at_gmail.com>
Portugais (Brésil)
- Alex Rohleder <alexrohleder96_at_outlook.com>
- bruno mendax <brunomendax_at_gmail.com>
- Danilo GUia <danilo.eng_at_globomail.com>
- Douglas Rafael Morais Kollar <douglas.kollar_at_pg.df.gov.br>
- Douglas Eccker <douglaseccker_at_hotmail.com>
- Ed Jr <edjacobjunior_at_gmail.com>
- Guilherme Souza Silva <g.szsilva_at_gmail.com>
- Guilherme Seibt <gui_at_webseibt.net>
- Helder Santana <helder.bs.santana_at_gmail.com>
- Junior Zancan <jrzancan_at_hotmail.com>
- Luis <luis.eduardo.braschi_at_outlook.com>
- Marcos Algeri <malgeri_at_gmail.com>
- Marc Delisle <marc_at_infomarc.info>
- Renato Rodrigues de Lima Júnio <renatomdd_at_yahoo.com.br>
- Thiago Casotti <thiago.casotti_at_uol.com.br>
- Victor Laureano <victor.laureano_at_gmail.com>
- Vinícius Araújo <vinipitta_at_gmail.com>
- Washington Bruno Rodrigues Cav <washingtonbruno_at_msn.com>
- Yan Gabriel <yansilvagabriel_at_gmail.com>
Pendjabi
- Robin van der Vliet <info_at_robinvandervliet.nl>
Roumain
- Alex <amihaita_at_yahoo.com>
- Costel Cocerhan <costa1988sv_at_gmail.com>
- Ion Adrian-Ionut <john_at_panevo.ro>
- Raul Molnar <molnar.raul_at_wservices.eu>
- Utilisateur Supprimé <noreply_at_weblate.org>
- Stefan Murariu <stefan.murariu_at_yahoo.com>
Russe
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
- <ddrmoscow_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Хомутов Иван Сергеевич <khomutov.ivan_at_mail.ru>
- Alexey Rubinov <orion1979_at_yandex.ru>
- Олег Карпов <salvadoporjc_at_gmail.com>
- Egorov Artyom <unlucky_at_inbox.ru>
Serbe
- Smart Kid <kidsmart33_at_gmail.com>
Cingalais
- Madhura Jayaratne <madhura.cj_at_gmail.com>
Slovaque
- Martin Lacina <martin_at_whistler.sk>
- Patrik Kollmann <parkourpotex_at_gmail.com>
- Jozef Pistej <pistej2_at_gmail.com>
Slovène
- Domen <mitenem_at_outlook.com>
Espagnol
- Daniel Hinostroza, MD <phpmyadmin_at_cerebroperiferico.com>
- Luis García Sevillano <floss.dev_at_gmail.com>
- Franco <fulanodetal.github1_at_openaliasbox.org>
- Luis Ruiz <luisan00_at_hotmail.com>
- Macofe <macofe.languagetool_at_gmail.com>
- Matías Bellone <matiasbellone+weblate_at_gmail.com>
- Rodrigo A. <ra4_at_openmailbox.org>
- FAMMA TV NOTICIAS MEDIOS DE CO <revistafammatvmusic.oficial_at_gmail.com>
- Ronnie Simon <ronniesimonf_at_gmail.com>
Suédois
- Anders Jonsson <anders.jonsson_at_norsjovallen.se>
Tamoul
- கணேஷ் குமார் <GANESHTHEONE_at_gmail.com>
- Achchuthan Yogarajah <achch1990_at_gmail.com>
- Rifthy Ahmed <rifthy456_at_gmail.com>
Thaï
- <nontawat39_at_gmail.com>
- Somthanat W. <somthanat_at_gmail.com>
Turc
- Burak Yavuz <hitowerdigit_at_hotmail.com>
Ukrainien
- Сергій Педько <nitrotoll_at_gmail.com>
- Igor <vmta_at_yahoo.com>
- Vitaliy Perekupka <vperekupka_at_gmail.com>
Vietnamien
- Bao Phan <baophan94_at_icloud.com>
- Xuan Hung <mr.hungdx_at_gmail.com>
- Bao trinh minh <trinhminhbao_at_gmail.com>
Flandre occidentale
- Robin van der Vliet <info_at_robinvandervliet.nl>
Traducteurs de la documentation¶
Les personnes suivantes ont contribué à la traduction de la documentation de phpMyAdmin :
Albanais
- Arben Çokaj <acokaj_at_shkoder.net>
Arabe
- Ahmed El Azzabi <ahmedtek1993_at_gmail.com>
- Omar Essam <omar_2412_at_live.com>
Arménien
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
Azéri
- Mircəlal <01youknowme_at_gmail.com>
- Sevdimali İsa <sevdimaliisayev_at_mail.ru>
Catalan
- josep constanti <jconstanti_at_yahoo.es>
- Joan Montané <joan_at_montane.cat>
- Xavier Navarro <xvnavarro_at_gmail.com>
Chinois (Chine)
- Vincent Lau <3092849_at_qq.com>
- 罗攀登 <6375lpd_at_gmail.com>
- disorderman <disorderman_at_qq.com>
- ITXiaoPang <djh1017555_at_126.com>
- tunnel213 <tunnel213_at_aliyun.com>
- Terry Weng <wengshiyu_at_gmail.com>
- whh <whhlcj_at_126.com>
Chinois (Taïwan)
- Chien Wei Lin <cwlin0416_at_gmail.com>
- Peter Dave Hello <xs910203_at_gmail.com>
Tchèque
- Aleš Hakl <ales_at_hakl.net>
- Michal Čihař <michal_at_cihar.com>
- Jan Palider <palider_at_seznam.cz>
- Petr Kateřiňák <petr.katerinak_at_gmail.com>
Danois
- Aputsiaĸ Niels Janussen <aj_at_isit.gl>
- Claus Svalekjaer <just.my.smtp.server_at_gmail.com>
Néerlandais
- Voogt <a.voogt_at_hccnet.nl>
- dingo thirteen <dingo13_at_gmail.com>
- Dries Verschuere <dries.verschuere_at_outlook.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Stefan Koolen <nast3zz_at_gmail.com>
- Ray Borggreve <ray_at_datahuis.net>
- Dieter Adriaenssens <ruleant_at_users.sourceforge.net>
- Tom Hofman <tom.hofman_at_gmail.com>
Estonien
- Kristjan Räts <kristjanrats_at_gmail.com>
Finnois
- Juha <jremes_at_outlook.com>
Français
- Cédric Corazza <cedric.corazza_at_wanadoo.fr>
- Étienne Gilli <etienne.gilli_at_gmail.com>
- Marc Delisle <marc_at_infomarc.info>
- Donavan_Martin <mart.donavan_at_hotmail.com>
Frison
- Robin van der Vliet <info_at_robinvandervliet.nl>
Galicien
- Xosé Calvo <xosecalvo_at_gmail.com>
Allemand
- Daniel <d.gnauk89_at_googlemail.com>
- JH M <janhenrikm_at_yahoo.de>
- Lasse Goericke <lasse_at_mydom.de>
- Michael Koch <michael.koch_at_enough.de>
- Ann + J.M. <phpMyAdmin_at_ZweiSteinSoft.de>
- Niemand Jedermann <predatorix_at_web.de>
- Phillip Rohmberger <rohmberger_at_hotmail.de>
- Hauke Henningsen <sqrt_at_entless.org>
Grec
- Παναγιώτης Παπάζογλου <papaz_p_at_yahoo.com>
Hongrois
- Balázs Úr <urbalazs_at_gmail.com>
Italien
- Francesco Saverio Giacobazzi <francesco.giacobazzi_at_ferrania.it>
- Marco Pozzato <ironpotts_at_gmail.com>
- Stefano Martinelli <stefano.ste.martinelli_at_gmail.com>
- TWS <tablettws_at_gmail.com>
Japonais
- Eshin Kunishima <ek_at_luna.miko.im>
- Hiroshi Chiyokawa <hiroshi.chiyokawa_at_gmail.com>
Lituanien
- Jur Kis <atvejis_at_gmail.com>
- Dovydas <dovy.buz_at_gmail.com>
Norvégien, Bokmål
- Tor Stokkan <danorse_at_gmail.com>
- Kurt Eilertsen <kurt_at_kheds.com>
Portugais (Brésil)
- Alexandre Moretti <alemoretti2010_at_hotmail.com>
- Douglas Rafael Morais Kollar <douglas.kollar_at_pg.df.gov.br>
- Guilherme Seibt <gui_at_webseibt.net>
- Helder Santana <helder.bs.santana_at_gmail.com>
- Michal Čihař <michal_at_cihar.com>
- Michel Souza <michel.ekio_at_gmail.com>
- Danilo Azevedo <mrdaniloazevedo_at_gmail.com>
- Thiago Casotti <thiago.casotti_at_uol.com.br>
- Vinícius Araújo <vinipitta_at_gmail.com>
- Yan Gabriel <yansilvagabriel_at_gmail.com>
Slovaque
- Martin Lacina <martin_at_whistler.sk>
- Michal Čihař <michal_at_cihar.com>
- Jozef Pistej <pistej2_at_gmail.com>
Slovène
- Domen <mitenem_at_outlook.com>
Espagnol
- Luis García Sevillano <floss.dev_at_gmail.com>
- Franco <fulanodetal.github1_at_openaliasbox.org>
- Matías Bellone <matiasbellone+weblate_at_gmail.com>
- Ronnie Simon <ronniesimonf_at_gmail.com>
Turc
- Burak Yavuz <hitowerdigit_at_hotmail.com>
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 utiliser MySQL en utilisant PHP3. Bien que je n’ai pas utilisé son code source, je lui ai emprunté des concepts. phpMyAdmin a été créé car Peter m’avait dit qu’il allait arrêter le développement de son (super) outil.
Remerciements à
- Amalesh Kempf <ak-lsml_at_living-source.com> qui a contribué au code pour la vérification lors de la suppression d’une table ou d’une base de données. Il a aussi suggéré de pouvoir être capable de spécifier la clé primaire sur tbl_create.php3. Dans la version 1.1.1, il a contribué à ldi_*.php3-set (import de fichiers texte) et au rapport de bogue. Plus beaucoup d’autres petites améliorations.
- Jan Legenhausen <jan_at_nrw.net> : Il a fait beaucoup des changements introduits dans la version 1.3.0 (dont certains très importants comme l’authentification). Dans la version 1.4.1, il a amélioré la fonctionnalité d’export de table. Plus des corrections de bogues et l’aide.
- Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> a permis la localisation de phpMyAdmin en extrayant les chaînes dans un fichier séparé. Il a aussi contribué à la traduction française.
- Alexandr Bravo <abravo_at_hq.admiral.ru> qui a contribué à tbl_select.php3, une fonctionnalité pour afficher seulement certaines colonnes d’une table.
- Chris Jackson <chrisj_at_ctel.net> a ajouté le support de fonctions MySQL dans tbl_change.php3. Il a aussi ajouté la fonctionnalité « Query by Example » dans la version 2.0.
- Dave Walton <walton_at_nordicdms.com> a ajouté le support pour des serveurs multiples et est un contributeur régulier pour la correction de bogues.
- Gabriel Ash <ga244_at_is8.nyu.edu> a contribué aux fonctionnalités d’accès aléatoires dans la version 2.0.6.
Les personnes suivantes ont contribué à des changements, améliorations, corrections de bogues ou support d’une nouvelle langue, mineurs :
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 suggestions par courriel, des rapports de bogue ou juste des retours d’utilisation.
Glossaire¶
de Wikipedia, l’encyclopédie libre
- .htaccess
le nom par défaut du fichier de configuration de niveau de répertoire de Apache.
Voir aussi
- ACL
- Liste des contrôles d’accès
- Blowfish
un algorithme de chiffrement symétrique par blocs conçu par Bruce Schneier en 1993.
Voir aussi
- Navigateur
un logiciel qui permet à un utilisateur d’afficher et d’interagir avec du texte, des images et d’autres informations typiquement situés sur une page Web ou sur un site Web sur le Word Wide Web.
Voir aussi
- bzip2
un algorithme de compression de données en logiciel libre et à sources ouvertes et un programme développé par Julian Seward.
Voir aussi
- CGI
Common Gateway Interface (littéralement « Interface passerelle commune »), est une technologie des serveurs HTTP. Ce dernier, au lieu de renvoyer le contenu d’un fichier (image ou HTML), exécute un programme puis retourne le contenu généré, comme s’il s’agissait d’un contenu de fichier.
- Changelog
un journal ou un enregistrement des changements fait dans un projet.
Voir aussi
- Client
un ordinateur qui accède à un service (distant) sur un autre ordinateur par un réseau.
Voir aussi
- colonne
un ensemble de valeurs de données d’un type particulièrement simple, une pour chaque ligne du tableau.
Voir aussi
une suite d’informations envoyée par un serveur à un navigateur Web, que ce dernier retourne lors de chaque interrogation du même serveur.
Voir aussi
- CSV
valeurs séparées par des virgules
Voir aussi
- DB
- voir Base de données
- Base de données
une collection de données ordonnées.
Voir aussi
- Moteur
- voir Storage Engines
- Extension PHP
un module PHP qui étend PHP avec des fonctionnalités supplémentaires.
Voir aussi
- FAQ
une Foire Aux Questions est une liste de question posées fréquemment et leurs réponses.
Voir aussi
- Champ
une partie de données divisées/colonnes.
- Clé étrangère
une colonne ou un groupe de colonnes dans une base de données qui pointe vers une clé de colonne ou d’un groupe de colonne d’une autre ligne de la base de données dans une table (habituellement différente).
- GD
une bibliothèque graphique de Thomas Boutell et d’autres pour la manipulation dynamique d’images.
Voir aussi
- GD2
- voir GD
- GZip
GZip est le raccourci pour GNU zip, un logiciel GNU libre, utilitaire de compression de fichier.
Voir aussi
- hôte
toute machine connectée à un réseau informatique, un nœud qui a un nom d’hôte.
Voir aussi
- nom d’hôte
le nom unique par lequel est connu un équipement attaché au réseau sur celui-ci.
Voir aussi
- HTTP
Hypertext Transfer Protocol, littéralement « protocole de transfert hypertexte », est un protocole de communication informatique client-serveur développé pour le World Wide Web.
- HTTPS
une connexion HTTP avec des mesures de sécurité additionnelles.
Voir aussi
- IEC
- International Electrotechnical Commission
- IIS
Internet Information Services est un serveur HTTP et/ou FTP créé par Microsoft pour ses systèmes d’exploitation Windows.
- Index
une fonctionnalité qui permet d’accéder rapidement aux lignes dans une table.
- IP
Protocole Internet (en anglais « Internet Protocol »). Le protocole Internet gère le transport et le routage des paquets sur le réseau.
Voir aussi
- Adresse IP
un numéro unique qu’utilisent les équipements pour s’identifier et communiquer entre eux sur un réseau en utilisant le protocole IP standard.
Voir aussi
- IPv6
IPv6 (Internet Protocol version 6) est la dernière révision du protocole IP (IP), conçue pour pallier le manque d’adresses IPv4 disponibles.
Voir aussi
- ISAPI
Internet Server Application Programming Interface est l’API de Internet Information Services (IIS).
Voir aussi
- FAI
Un fournisseur d’accès à Internet, est un organisme (généralement une entreprise) offrant une connexion au informatique à Internet et des services associés.
- ISO
International Standards Organisation
Voir aussi
- JPEG
Joint Photographic Experts Group, nom d’un comité créé en 1986 résultant de la fusion de plusieurs groupes (d’où le joint) de professionnels de l’industrie de l’image. Ce comité a donné son nom à la norme ouverte de compression d’images numériques JPEG.
Voir aussi
- JPG
- voir JPEG
- Clé
- voir Index
- LATEX
un système de préparation de document pour le programme TeX.
Voir aussi
- Mac
les Apple Macintosh sont une ligne d’ordinateurs personnels conçus, développés, fabriqués et commercialisés par Apple Inc.
Voir aussi
- macOS
le système d’exploitation propriétaire fourni avec l’ordinateur Macintosh d’Apple Computer, depuis 2001 et distribué également séparément pour des modèles antérieurs.
Voir aussi
- mbstring
Les fonctions mbstring de PHP gèrent les langues utilisant les jeux de caractères multi-octets, dont UTF-8.
Si vous rencontrez des problèmes pour installer cette extension, veuillez suivre 1.20 Je reçois une erreur sur l’absence des extensions mysqli et mysql. qui fournit des informations utiles.
Voir aussi
- Type de médias
Un type de média (anciennement connu sous le nom de type MIME) est un identifiant en deux parties pour les formats de fichiers et les contenus de format transmis sur Internet.
Voir aussi
<https://fr.wikipedia.org/wiki/Type_de_médias>
- MIME
Multipurpose Internet Mail Extensions est un format de données permettant d’introduire dans les messages SMTP (courriels) différents types de fichiers multimédias.
- module
extension modulaire pour le serveur HTTP Apache httpd.
Voir aussi
- mod_proxy_fcgi
un module Apache mettant en œuvre une interface Fast CGI ; PHP peut être exécuté en tant que module CGI, FastCGI ou directement en tant que module Apache.
Voir aussi
- MySQL
MySQL (SQL est acronyme de Structured Query Language en anglais) est un serveur de bases de données relationnelles SQL très rapide, multi-thread, robuste et multi-utilisateurs.
Voir aussi
- MySQLi
l’extension client PHP de MySQL améliorée.
Voir aussi
“Manuel PHP pour MySQLi <https://www.php.net/manual/fr/book.mysqli.php>”_
Voir aussi
- mysql
l’extension PHP client de MySQL.
Voir aussi
- OpenDocument
un standard ouvert pour les documents de bureau.
Voir aussi
- OS X
voir macOS.
Voir aussi
Portable Document Format, un format de fichier informatique universel créé par la société Adobe Systems pour la diffusion des documents (de types texte, affiche, diapositive, plan, formulaires interactifs…).
Voir aussi
- PEAR
PHP Extension and Application Repository.
Voir aussi
Voir aussi
- PCRE
Perl-Compatible Regular Expressions - Expressions rationnelles compatibles Perl pour PHP
Voir aussi
Voir aussi
Manuel PHP pour les expressions régulières compatibles Perl <https://www.php.net/pcre> _
- PHP
PHP (venant de l’acronyme récursif PHP : Hypertext Preprocessor), est un langage de script libre principalement utilisé pour être exécuté par un serveur HTTP, mais il peut fonctionner comme n’importe quel langage interprété en utilisant les scripts et son interpréteur sur un ordinateur.
Voir aussi
- port
une connexion par laquelle des données sont transmises et reçues.
Voir aussi
- clé primaire
Une clé primaire est un index d’un ou plusieurs champs d’une table ayant des valeurs uniques pour chaque enregistrement de cette table. Chaque table devrait avoir une clé primaire pour accéder et identifier facilement les données de cette table. Il ne peut y avoir qu’une seule clé primaire par table toujours nommée PRIMARY. En fait, une clé primaire n’est autre qu’une unique key avec le nom PRIMARY. Si aucune clé primaire n’est définie, MySQL utilisera la première clé unique comme clé primaire, s’il en existe une.
Vous pouvez créer la clé primaire en créant la table (dans phpMyAdmin, sélectionnez les boutons radio de chaque champ que vous souhaitez avoir dans la clé primaire).
Vous pouvez aussi ajouter une clé primaire à une table existante avec ALTER TABLE ou CREATE INDEX (dans phpMyAdmin, cliquez sur “ajouter un index” dans la page de structure de table sous les champs listés).
- RFC
les « request for comment » (RFC, littéralement demande de commentaires) sont une série de documents et normes concernant l’Internet, commencée en 1969. Peu de RFC sont des standards, mais tous les standards de l’Internet sont enregistrés en tant que RFC.
Voir aussi
- RFC 1952
spécification de format de fichier GZIP version 4.3
Voir aussi
- Ligne (enregistrement, tuple)
représente un seul élément de donnée structuré implicitement dans une table.
- Serveur
est un ordinateur ou un programme informatique qui partage un service sur un réseau.
Voir aussi
- Sodium
L’extension PHP Sodium.
Voir aussi
- Moteurs de stockage
MySQL peut utiliser plusieurs format pour stocker les données sur le disque. Ces formats sont appelés moteurs de stockage ou type de tables. phpMyAdmin permet à un utilisateur de modifier le moteur de stockage pour une table en particulier en utilisant l’onglet Opérations.
Les types de tables les plus communs sont InnoDB et MyISAM, bien que d’autres types existent qui peuvent être appropriés dans certaines situations.
- socket
une forme de communication inter-processus.
- SSL
Secure Sockets Layer, (aujourd’hui remplacé par TLS) est un protocole de sécurisation des échanges sur Internet.
- Procédure stockée
ensemble d’instructions SQL pré-compilées, stockées dans une base de données et exécutées sur demande par le système de gestion de base de données qui manipule la base de données
- SQL
Structured Query Language
- table
un ensemble d’éléments de données (cellules) qui est organisé, défini et stocké en lignes et en colonnes où chaque élément est identifié par un libellé ou une clé unique ou par sa position par rapport aux autres éléments.
- tar
TAR (de l’anglais « Tape Archive », littéralement « archive sur bande ») est l’outil d’archivage de fichiers standard de UNIX. On appelle parfois le fichier d’archivage créé un « tarball ».
Voir aussi
- TCP
Transmission Control Protocol (« protocole de contrôle de transmissions »), est un protocole de transport fiable, en mode connecté, documenté dans la RFC 793 de l’IETF.
- TCPDF
Bibliothèque PHP pour générer des fichiers PDF.
Voir aussi
Voir aussi
- déclencheur
dispositif logiciel qui provoque un traitement particulier en fonction d’événements prédéfinis. Par extension, c’est l’événement lui-même qui est qualifié de déclencheur
Voir aussi
- clé unique
- Une clé unique est un index constitué d’un ou plusieurs champs d’une table qui a une valeur unique pour chaque enregistrement. La première clé unique sera traitée comme primary key si aucune clé primaire n’est définie.
- URL
Uniform Resource Locator - Une adresse réticulaire (du latin rete qui signifie « filet » donc par extension réseau) est une chaîne de caractères utilisée pour identifier les ressources dans le World Wide Web.
- Serveur Web
un ordinateur tenant le rôle de serveur informatique sur lequel fonctionne un logiciel serveur HTTP ou le logiciel serveur HTTP lui-même.
Voir aussi
- XML
Extensible Markup Language (« langage de balisage extensible »), généralement abrégé XML, est un standard du World Wide Web Consortium qui sert de base pour créer des langages de balisage : c’est un « méta-langage ».
- Zip
un format de compression de données et d’archivage populaire.
- Zlib
une bibliothèque de compression de données libre et multiplateforme de Jean-loup Gailly et Mark Adler.
Voir aussi
- Stratégie de Sécurité du Contenu
L’en-tête de réponse HTTP Content-Security-Policy permet aux administrateurs de sites web de contrôler les ressources que l’agent utilisateur est autorisé à charger pour une page donnée.
Voir aussi